X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=doc%2Fmanual%2Fhelper.txt;h=aa52355f5dddb66a21f50b6aff5006ecf0304e45;hb=acbe054a38a45432f5948026e1e9258b4e2910c2;hp=7060607cd4d2e804d6146b0a4d3e635c7e24b720;hpb=ebbc762182c943d5967ea106933181a2fb726b1b;p=fw%2Fopenocd
diff --git a/doc/manual/helper.txt b/doc/manual/helper.txt
index 7060607cd..aa52355f5 100644
--- a/doc/manual/helper.txt
+++ b/doc/manual/helper.txt
@@ -45,16 +45,16 @@ another layer of handlers.
@subsection helpercmdhandlerdef Defining and Calling Command Handlers
-These functions should be defined using the COMMAND_HANDLER macro.
+These functions should be defined using the @c COMMAND_HANDLER macro.
These methods must be defined as static, as their principle entry point
should be the run_command dispatch mechanism.
Command helper functions that require access to the full set of
-parameters should be defined using the COMMAND_HELPER. These must be
+parameters should be defined using the @c COMMAND_HELPER. These must be
declared static by you, as sometimes you might want to share a helper
-among several files (e.g. s3c24xx_nand.h).
+among several files (e.g. @c s3c24xx_nand.h).
-Both types of routines must be called using the CALL_COMMAND_HANDLER macro.
+Both types of routines must be called using the @c CALL_COMMAND_HANDLER macro.
Calls using this macro to normal handlers require the name of the command
handler (which can a name or function pointer). Calls to helpers and
derived handlers must pass those extra parameters specified by their
@@ -67,22 +67,54 @@ will be able to use direct invocations.
Thus, the following macros can be used to define and call command
handlers or helpers:
-- COMMAND_HANDLER - declare or define a command handler.
-- COMMAND_HELPER - declare or define a derived command handler or helper.
-- CALL_COMMAND_COMMAND - call a command handler/helper.
-
-@subsection helpercmdhandlerparam Command Handler Parameters
-
-The following parameters are defined in the scope of all command
-handlers and helpers:
-- struct command_context_s *cmd_ctx
- the command's context
-- unsigned argc
- the number of command arguments
-- const char *args[]
- contains the command arguments
+- @c COMMAND_HANDLER - declare or define a command handler.
+- @c COMMAND_HELPER - declare or define a derived command handler or helper.
+- @c CALL_COMMAND_COMMAND - call a command handler/helper.
@subsection helpercmdhandlermacros Command Handler Macros
-In addition, the following macro may be used:
-- COMMAND_NAME
- contains the command name
+In addition, the following macros may be used in the context of
+command handlers and helpers:
+- @c CMD_CTX - the current @c command_context
+- @c CMD_NAME - invoked command name
+- @c CMD_ARGC - the number of command arguments
+- @c CMD_ARGV - array of command argument strings
+
+@section helpercmdregister Command Registration
+
+In order to use a command handler, it must be registered with the
+command subsystem. All commands are registered with command_registration
+structures, specifying the name of the command, its handler, its allowed
+mode(s) of execution, and strings that provide usage and help text.
+A single handler may be registered using multiple names, but any name
+may have only one handler associated with it.
+
+The @c register_commands() and @c register_commands() functions provide
+registration, while the @c unregister_command() and
+@c unregister_all_commands() functions will remove existing commands.
+These may be called at any time, allowing the command set to change in
+response to system actions.
+
+@subsection helpercmdjim Jim Command Registration
+
+The command_registration structure provides support for registering
+native Jim command handlers (@c jim_handler) too. For these handlers,
+the module can provide help and usage support; however, this mechanism
+allows Jim handlers to be called as sub-commands of other commands.
+These commands may be registered with a private data value (@c
+jim_handler_data) that will be available when called, as with low-level
+Jim command registration.
+
+A command may have a normal @c handler or a @c jim_handler, but not both.
+
+@subsection helpercmdregisterchains Command Chaining
+
+When using register_commands(), the array of commands may reference
+other arrays. When the @c chain field is filled in a
+command_registration record, the commands on in the chained list will
+added in one of two places. If the record defines a new command, then
+the chained commands are added under it; otherwise, the commands are
+added in the same context as the other commands in the array.
@section helpercmdprimer Command Development Primer