diff options
author | Heinrich Schuchardt <xypron.glpk@gmx.de> | 2018-12-21 02:57:03 +0100 |
---|---|---|
committer | Tom Rini <trini@konsulko.com> | 2018-12-26 21:35:53 -0500 |
commit | ca80b561e18b69f55a632f12f0ca0ffa04456c69 (patch) | |
tree | f8a0be414f61a1919563ac8c8142b5800793b9dc /doc/README.commands | |
parent | 1f5a3cd0aa36b5acf4d705de063028880a1273a2 (diff) |
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/README.commands')
-rw-r--r-- | doc/README.commands | 36 |
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 ---------------- |