summaryrefslogtreecommitdiff
path: root/src/helper
diff options
context:
space:
mode:
authorZachary T Welch <zw@superlucidity.net>2009-11-22 01:48:55 -0800
committerZachary T Welch <zw@superlucidity.net>2009-11-24 21:37:30 -0800
commit769fbfa058946e1581d5f9ad75d17947d1ee9ff1 (patch)
treeb645748b64d64ae5fcc26ffb70474dbbbaf0971f /src/helper
parent4c54c27da774f8035a04f3b091fcfc5661253a0e (diff)
downloadopenocd+libswd-769fbfa058946e1581d5f9ad75d17947d1ee9ff1.tar.gz
openocd+libswd-769fbfa058946e1581d5f9ad75d17947d1ee9ff1.tar.bz2
openocd+libswd-769fbfa058946e1581d5f9ad75d17947d1ee9ff1.tar.xz
openocd+libswd-769fbfa058946e1581d5f9ad75d17947d1ee9ff1.zip
add public API for locating commands
Allow other modules to find a command, primarily for the purpose of registering and unregistering subcommands.
Diffstat (limited to 'src/helper')
-rw-r--r--src/helper/command.c10
-rw-r--r--src/helper/command.h5
2 files changed, 15 insertions, 0 deletions
diff --git a/src/helper/command.c b/src/helper/command.c
index af481cd4..54bfb964 100644
--- a/src/helper/command.c
+++ b/src/helper/command.c
@@ -193,6 +193,16 @@ static struct command *command_find(struct command *head, const char *name)
}
return NULL;
}
+struct command *command_find_in_context(struct command_context *cmd_ctx,
+ const char *name)
+{
+ return command_find(cmd_ctx->commands, name);
+}
+struct command *command_find_in_parent(struct command *parent,
+ const char *name)
+{
+ return command_find(parent->children, name);
+}
/**
* Add the command into the linked list, sorted by name.
diff --git a/src/helper/command.h b/src/helper/command.h
index 6e3e93af..2edeca91 100644
--- a/src/helper/command.h
+++ b/src/helper/command.h
@@ -281,6 +281,11 @@ int unregister_command(struct command_context *cmd_ctx,
int unregister_all_commands(struct command_context *cmd_ctx,
struct command *parent);
+struct command *command_find_in_context(struct command_context *cmd_ctx,
+ const char *name);
+struct command *command_find_in_parent(struct command *parent,
+ const char *name);
+
void command_set_output_handler(struct command_context* context,
command_output_handler_t output_handler, void *priv);