summaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authorHeinrich Schuchardt <xypron.glpk@gmx.de>2018-12-21 02:57:03 +0100
committerTom Rini <trini@konsulko.com>2018-12-26 21:35:53 -0500
commitca80b561e18b69f55a632f12f0ca0ffa04456c69 (patch)
treef8a0be414f61a1919563ac8c8142b5800793b9dc /doc
parent1f5a3cd0aa36b5acf4d705de063028880a1273a2 (diff)
downloadu-boot-ca80b561e18b69f55a632f12f0ca0ffa04456c69.tar.gz
doc: README.commands: sub-commands
Describe the implementation of sub-commands. Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de> Reviewed-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'doc')
-rw-r--r--doc/README.commands36
1 files changed, 36 insertions, 0 deletions
diff --git a/doc/README.commands b/doc/README.commands
index 1d29c4d91d..0ccadae0b7 100644
--- a/doc/README.commands
+++ b/doc/README.commands
@@ -28,6 +28,42 @@ comp: Pointer to the completion function. May be NULL.
entering the command arguments to complete the entry. Command
completion is only available if CONFIG_AUTO_COMPLETE is defined.
+Sub-command definition
+----------------------
+
+Likewise an array of cmd_tbl_t holding sub-commands can be created using either
+of the following macros:
+
+* U_BOOT_CMD_MKENT(name, maxargs, repeatable, command, "usage", "help")
+* U_BOOT_CMD_MKENTCOMPLETE(name, maxargs, repeatable, command, "usage, "help",
+ comp)
+
+This table has to be evaluated in the command function of the main command, e.g.
+
+ static cmd_tbl_t cmd_sub[] = {
+ U_BOOT_CMD_MKENT(foo, CONFIG_SYS_MAXARGS, 1, do_foo, "", ""),
+ U_BOOT_CMD_MKENT(bar, CONFIG_SYS_MAXARGS, 1, do_bar, "", ""),
+ };
+
+ static int do_cmd(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
+ {
+ cmd_tbl_t *cp;
+
+ if (argc < 2)
+ return CMD_RET_USAGE;
+
+ /* drop sub-command argument */
+ argc--;
+ argv++;
+
+ cp = find_cmd_tbl(argv[0], cmd_ut_sub, ARRAY_SIZE(cmd_sub));
+
+ if (cp)
+ return cp->cmd(cmdtp, flag, argc, argv);
+
+ return CMD_RET_USAGE;
+ }
+
Command function
----------------