* GNU General Public License for more details. *
* *
* You should have received a copy of the GNU General Public License *
- * along with this program; if not, write to the *
- * Free Software Foundation, Inc., *
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. *
+ * along with this program. If not, see <http://www.gnu.org/licenses/>. *
***************************************************************************/
/* this file contains various functionality useful to standalone systems */
/* loads a file and returns a pointer to it in memory. The file contains
* a 0 byte(sentinel) after len bytes - the length of the file. */
-static int loadFile(const char *fileName, char **data, size_t *len)
+static int load_file(const char *fileName, char **data, size_t *len)
{
/* ensure returned length is always sane */
*len = 0;
char *data;
size_t len;
- int retval = loadFile(CMD_ARGV[0], &data, &len);
+ int retval = load_file(CMD_ARGV[0], &data, &len);
if (retval == ERROR_OK) {
- command_print(CMD_CTX, "%s", data);
+ command_print(CMD, "%s", data);
free(data);
} else
- command_print(CMD_CTX, "%s not found", CMD_ARGV[0]);
+ command_print(CMD, "%s not found", CMD_ARGV[0]);
return ERROR_OK;
}
info = mallinfo();
if (prev > 0)
- command_print(CMD_CTX, "Diff: %d", prev - info.fordblks);
+ command_print(CMD, "Diff: %d", prev - info.fordblks);
prev = info.fordblks;
- command_print(CMD_CTX, "Available ram: %d", info.fordblks);
+ command_print(CMD, "Available ram: %d", info.fordblks);
return ERROR_OK;
}
char *data;
size_t len;
- int retval = loadFile(CMD_ARGV[0], &data, &len);
+ int retval = load_file(CMD_ARGV[0], &data, &len);
if (retval != ERROR_OK)
return retval;
if (retval != ERROR_OK)
break;
- command_print(CMD_CTX, "%zu", len - pos);
+ command_print(CMD, "%zu", len - pos);
pos += chunk;
}
if (retval == ERROR_OK)
- command_print(CMD_CTX, "Copied %s to %s", CMD_ARGV[0], CMD_ARGV[1]);
+ command_print(CMD, "Copied %s to %s", CMD_ARGV[0], CMD_ARGV[1]);
else
- command_print(CMD_CTX, "copy failed");
+ command_print(CMD, "copy failed");
if (data != NULL)
free(data);
return retval;
}
-#define SHOW_RESULT(a, b) LOG_ERROR(# a " failed %d\n", (int)b)
-
-#define IOSIZE 512
-void copyfile(char *name2, char *name1)
-{
-
- int err;
- char buf[IOSIZE];
- int fd1, fd2;
- ssize_t done, wrote;
-
- fd1 = open(name1, O_WRONLY | O_CREAT, 0664);
- if (fd1 < 0)
- SHOW_RESULT(open, fd1);
-
- fd2 = open(name2, O_RDONLY);
- if (fd2 < 0)
- SHOW_RESULT(open, fd2);
-
- for (;; ) {
- done = read(fd2, buf, IOSIZE);
- if (done < 0) {
- SHOW_RESULT(read, done);
- break;
- }
-
- if (done == 0)
- break;
-
- wrote = write(fd1, buf, done);
- if (wrote != done)
- SHOW_RESULT(write, wrote);
-
- if (wrote != done)
- break;
- }
-
- err = close(fd1);
- if (err < 0)
- SHOW_RESULT(close, err);
-
- err = close(fd2);
- if (err < 0)
- SHOW_RESULT(close, err);
-}
-
-/* utility fn to copy a directory */
-void copydir(char *name, char *destdir)
-{
- int err;
- DIR *dirp;
-
- dirp = opendir(destdir);
- if (dirp == NULL)
- mkdir(destdir, 0777);
- else
- err = closedir(dirp);
-
- dirp = opendir(name);
- if (dirp == NULL)
- SHOW_RESULT(opendir, -1);
-
- for (;; ) {
- struct dirent *entry = readdir(dirp);
-
- if (entry == NULL)
- break;
-
- if (strcmp(entry->d_name, ".") == 0)
- continue;
- if (strcmp(entry->d_name, "..") == 0)
- continue;
-
- int isDir = 0;
- struct stat buf;
- char fullPath[PATH_MAX];
- strncpy(fullPath, name, PATH_MAX);
- strcat(fullPath, "/");
- strncat(fullPath, entry->d_name, PATH_MAX - strlen(fullPath));
-
- if (stat(fullPath, &buf) == -1) {
- LOG_ERROR("unable to read status from %s", fullPath);
- break;
- }
- isDir = S_ISDIR(buf.st_mode) != 0;
-
- if (isDir)
- continue;
-
- /* diag_printf("<INFO>: entry %14s",entry->d_name); */
- char fullname[PATH_MAX];
- char fullname2[PATH_MAX];
-
- strcpy(fullname, name);
- strcat(fullname, "/");
- strcat(fullname, entry->d_name);
-
- strcpy(fullname2, destdir);
- strcat(fullname2, "/");
- strcat(fullname2, entry->d_name);
- /* diag_printf("from %s to %s\n", fullname, fullname2); */
- copyfile(fullname, fullname2);
-
- /* diag_printf("\n"); */
- }
-
- err = closedir(dirp);
- if (err < 0)
- SHOW_RESULT(stat, err);
-}
-
COMMAND_HANDLER(handle_rm_command)
{
if (CMD_ARGC != 1)
.handler = handle_meminfo_command,
.mode = COMMAND_ANY,
.help = "display free heap space",
+ .usage = "",
},
#endif
{