ecos: crisper implementation of timeval_ms()
[fw/openocd] / src / helper / ioutil.c
index 3fb3014a7f099a99cdd85ee740c1a269aba402e7..27bffad33687667c298238624616b3b4c0fc9f6f 100644 (file)
@@ -38,9 +38,6 @@
 #ifdef HAVE_NET_IF_H
 #include <net/if.h>
 #endif
-//#ifdef HAVE_NETINET_TCP_H
-//#include <netinet/tcp.h>
-//#endif
 #ifdef HAVE_SYS_IOCTL_H
 #include <sys/ioctl.h>
 #endif
 #endif
 
 
-COMMAND_HANDLER(handle_rm_command)
-{
-       if (CMD_ARGC != 1)
-       {
-               command_print(CMD_CTX, "rm <filename>");
-               return ERROR_INVALID_ARGUMENTS;
-       }
-
-       if (unlink(CMD_ARGV[0]) != 0)
-       {
-               command_print(CMD_CTX, "failed: %d", errno);
-       }
-
-       return ERROR_OK;
-}
-
-
 /* 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. */
 int loadFile(const char *fileName, void **data, size_t *len)
@@ -421,25 +401,18 @@ void copydir(char *name, char *destdir)
 
 
 
-static int
-zylinjtag_Jim_Command_rm(Jim_Interp *interp,
-                                   int argc,
-               Jim_Obj * const *argv)
+COMMAND_HANDLER(handle_rm_command)
 {
-       int del;
-       if (argc != 2)
-       {
-               Jim_WrongNumArgs(interp, 1, argv, "rm ?dirorfile?");
-               return JIM_ERR;
-       }
+       if (CMD_ARGC != 1)
+               return ERROR_INVALID_ARGUMENTS;
 
-       del = 0;
-       if (unlink(Jim_GetString(argv[1], NULL)) == 0)
-               del = 1;
-       if (rmdir(Jim_GetString(argv[1], NULL)) == 0)
-               del = 1;
+       bool del = false;
+       if (rmdir(CMD_ARGV[0]) == 0)
+               del = true;
+       else if (unlink(CMD_ARGV[0]) == 0)
+               del = true;
 
-       return del ? JIM_OK : JIM_ERR;
+       return del ? ERROR_OK : ERROR_FAIL;
 }
 
 
@@ -643,41 +616,86 @@ static int zylinjtag_Jim_Command_mac(Jim_Interp *interp, int argc,
 
 }
 
-
+static const struct command_registration ioutil_command_handlers[] = {
+       {
+               .name = "cat",
+               .handler = &handle_cat_command,
+               .mode = COMMAND_ANY,
+               .help = "display file content",
+               .usage= "<file_name>",
+       },
+       {
+               .name = "trunc",
+               .handler = &handle_trunc_command,
+               .mode = COMMAND_ANY,
+               .help = "truncate a file 0 size",
+               .usage= "<file_name>",
+       },
+       {
+               .name = "cp",
+               .handler = &handle_cp_command,
+               .mode = COMMAND_ANY,
+               .help = "copy a file",
+               .usage = "<src> <dst>",
+       },
+       {
+               .name = "append_file",
+               .handler = &handle_append_command,
+               .mode = COMMAND_ANY,
+               .help = "append a variable number of strings to a file",
+               .usage= "<file_name> [<string> ...]",
+       },
+       {
+               .name = "meminfo",
+               .handler = &handle_meminfo_command,
+               .mode = COMMAND_ANY,
+               .help = "display available ram memory",
+       },
+       {
+               .name = "rm",
+               .mode = COMMAND_ANY,
+               .handler = &handle_rm_command,
+               .help = "remove a file",
+               .usage = "<file>",
+       },
+       // jim handlers
+       {
+               .name = "peek",
+               .mode = COMMAND_ANY,
+               .jim_handler = &zylinjtag_Jim_Command_peek,
+               .help = "peek at a memory address",
+               .usage = "<addr>",
+       },
+       {
+               .name = "poke",
+               .mode = COMMAND_ANY,
+               .jim_handler = &zylinjtag_Jim_Command_poke,
+               .help = "poke at a memory address",
+               .usage = "<addr> <value>",
+       },
+       {
+               .name = "ls",
+               .mode = COMMAND_ANY,
+               .jim_handler = &zylinjtag_Jim_Command_ls,
+               .help = "show a listing of files",
+               .usage = "<dir>",
+       },
+       {
+               .name = "mac",
+               .mode = COMMAND_ANY,
+               .jim_handler = &zylinjtag_Jim_Command_mac,
+               .help = "show MAC address",
+       },
+       {
+               .name = "ip",
+               .jim_handler = &zylinjtag_Jim_Command_ip,
+               .mode = COMMAND_ANY,
+               .help = "show IP address",
+       },
+       COMMAND_REGISTRATION_DONE
+};
 
 int ioutil_init(struct command_context *cmd_ctx)
 {
-       register_command(cmd_ctx, NULL, "rm", handle_rm_command, COMMAND_ANY,
-                       "remove file");
-
-       register_command(cmd_ctx, NULL, "cat", handle_cat_command, COMMAND_ANY,
-                       "display file content");
-
-       register_command(cmd_ctx, NULL, "trunc", handle_trunc_command, COMMAND_ANY,
-                       "truncate a file to 0 size");
-
-       register_command(cmd_ctx, NULL, "cp", handle_cp_command,
-                                        COMMAND_ANY, "copy a file <from> <to>");
-
-       register_command(cmd_ctx, NULL, "append_file", handle_append_command,
-                       COMMAND_ANY, "append a variable number of strings to a file");
-
-       register_command(cmd_ctx, NULL, "meminfo", handle_meminfo_command,
-                       COMMAND_ANY, "display available ram memory");
-
-    Jim_CreateCommand(interp, "rm", zylinjtag_Jim_Command_rm, NULL, NULL);
-
-    Jim_CreateCommand(interp, "peek", zylinjtag_Jim_Command_peek, NULL, NULL);
-    Jim_CreateCommand(interp, "poke", zylinjtag_Jim_Command_poke, NULL, NULL);
-    Jim_CreateCommand(interp, "ls", zylinjtag_Jim_Command_ls, NULL, NULL);
-
-       Jim_CreateCommand(interp, "mac", zylinjtag_Jim_Command_mac,
-                       NULL, NULL);
-
-       Jim_CreateCommand(interp, "ip", zylinjtag_Jim_Command_ip,
-                       NULL, NULL);
-
-    return ERROR_OK;
+       return register_commands(cmd_ctx, NULL, ioutil_command_handlers);
 }
-
-