summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorZachary T Welch <zw@superlucidity.net>2009-11-20 13:36:07 -0800
committerZachary T Welch <zw@superlucidity.net>2009-11-24 21:37:30 -0800
commit25a7ac2c756c78603c9c99d06f55717440409a23 (patch)
treec48127c6f32465dbd23fd5c8ec27b46850af6168 /src
parentd107f71c5079dbe2a023276367b805397d1245c4 (diff)
downloadopenocd+libswd-25a7ac2c756c78603c9c99d06f55717440409a23.tar.gz
openocd+libswd-25a7ac2c756c78603c9c99d06f55717440409a23.tar.bz2
openocd+libswd-25a7ac2c756c78603c9c99d06f55717440409a23.tar.xz
openocd+libswd-25a7ac2c756c78603c9c99d06f55717440409a23.zip
command: use register_commands for handlers
Use register_commands() to register low-level command handlers, adding a builtin_command_handlers declaration that is easy to understand. Splits help and usage information into their appropriate fields.
Diffstat (limited to 'src')
-rw-r--r--src/helper/command.c51
1 files changed, 34 insertions, 17 deletions
diff --git a/src/helper/command.c b/src/helper/command.c
index df4667b9..28952fda 100644
--- a/src/helper/command.c
+++ b/src/helper/command.c
@@ -900,6 +900,39 @@ COMMAND_HANDLER(handle_sleep_command)
return ERROR_OK;
}
+static const struct command_registration command_builtin_handlers[] = {
+ {
+ .name = "add_help_text",
+ .handler = &handle_help_add_command,
+ .mode = COMMAND_ANY,
+ .help = "add new command help text",
+ .usage = "<command> [...] <help_text>]",
+ },
+ {
+ .name = "sleep",
+ .handler = &handle_sleep_command,
+ .mode = COMMAND_ANY,
+ .help = "sleep for n milliseconds. "
+ "\"busy\" will busy wait",
+ .usage = "<n> [busy]",
+ },
+ {
+ .name = "help",
+ .handler = &handle_help_command,
+ .mode = COMMAND_ANY,
+ .help = "show built-in command help",
+ .usage = "[<command_name> ...]",
+ },
+ {
+ .name = "usage",
+ .handler = &handle_usage_command,
+ .mode = COMMAND_ANY,
+ .help = "show command usage",
+ .usage = "[<command_name> ...]",
+ },
+ COMMAND_REGISTRATION_DONE
+};
+
struct command_context* command_init(const char *startup_tcl)
{
struct command_context* context = malloc(sizeof(struct command_context));
@@ -959,10 +992,7 @@ struct command_context* command_init(const char *startup_tcl)
interp->cb_fflush = openocd_jim_fflush;
interp->cb_fgets = openocd_jim_fgets;
- COMMAND_REGISTER(context, NULL, "add_help_text",
- handle_help_add_command, COMMAND_ANY,
- "<command> [...] <help_text>] - "
- "add new command help text");
+ register_commands(context, NULL, command_builtin_handlers);
#if !BUILD_ECOSBOARD
Jim_EventLoopOnLoad(interp);
@@ -976,19 +1006,6 @@ struct command_context* command_init(const char *startup_tcl)
}
Jim_DeleteAssocData(interp, "context");
- COMMAND_REGISTER(context, NULL, "sleep",
- handle_sleep_command, COMMAND_ANY,
- "<n> [busy] - sleep for n milliseconds. "
- "\"busy\" means busy wait");
-
- COMMAND_REGISTER(context, NULL, "help",
- &handle_help_command, COMMAND_ANY,
- "[<command_name> ...] - show built-in command help");
- COMMAND_REGISTER(context, NULL, "usage",
- &handle_usage_command, COMMAND_ANY,
- "[<command_name> ...] | "
- "show command usage");
-
return context;
}