summaryrefslogtreecommitdiff
path: root/cmd/help.c
diff options
context:
space:
mode:
Diffstat (limited to 'cmd/help.c')
-rw-r--r--cmd/help.c42
1 files changed, 42 insertions, 0 deletions
diff --git a/cmd/help.c b/cmd/help.c
new file mode 100644
index 00000000000..56579e28d31
--- /dev/null
+++ b/cmd/help.c
@@ -0,0 +1,42 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright 2000-2009
+ * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
+ */
+
+#include <command.h>
+
+static int do_help(struct cmd_tbl *cmdtp, int flag, int argc,
+ char *const argv[])
+{
+#ifdef CONFIG_CMDLINE
+ struct cmd_tbl *start = ll_entry_start(struct cmd_tbl, cmd);
+ const int len = ll_entry_count(struct cmd_tbl, cmd);
+ return _do_help(start, len, cmdtp, flag, argc, argv);
+#else
+ return 0;
+#endif
+}
+
+U_BOOT_CMD(
+ help, CONFIG_SYS_MAXARGS, 1, do_help,
+ "print command description/usage",
+ "\n"
+ " - print brief description of all commands\n"
+ "help command ...\n"
+ " - print detailed usage of 'command'"
+);
+
+#ifdef CONFIG_CMDLINE
+/*
+ * This does not use the U_BOOT_CMD macro as ? can't be used in symbol names
+ * nor can we rely on the CONFIG_SYS_LONGHELP helper macro
+ */
+ll_entry_declare(struct cmd_tbl, question_mark, cmd) = {
+ "?", CONFIG_SYS_MAXARGS, cmd_always_repeatable, do_help,
+ "alias for 'help'",
+#ifdef CONFIG_SYS_LONGHELP
+ ""
+#endif /* CONFIG_SYS_LONGHELP */
+};
+#endif