[U-Boot] [RFC] exposing finding a command for subcommands

Kumar Gala galak at kernel.crashing.org
Tue Sep 23 16:08:20 CEST 2008


Here's an example of how we sould use this.  Obviously the code after the
if (cmd) would change.

- k

diff --git a/common/cmd_bootm.c b/common/cmd_bootm.c
index 3a20ad2..64e7571 100644
--- a/common/cmd_bootm.c
+++ b/common/cmd_bootm.c
@@ -377,10 +377,23 @@ static int bootm_load_os(image_info_t os, ulong *load_end, int boot_progress)
 	return 0;
 }

+cmd_tbl_t cmd_bootm_sub[] = {
+	U_BOOT_CMD_INIT(start, CFG_MAXARGS, 1, BOOTM_STATE_START, "", ""),
+	U_BOOT_CMD_INIT(loados, CFG_MAXARGS, 1, BOOTM_STATE_LOADOS, "", ""),
+	U_BOOT_CMD_INIT(ramdisk, CFG_MAXARGS, 1, BOOTM_STATE_RAMDISK, "", ""),
+};
+
+
 int do_bootm_subcommand (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
 {
 	int ret = 0;
 	int state;
+	cmd_tbl_t *cmd;
+
+	cmd = __find_cmd(argv[1], &cmd_bootm_sub[0], ARRAY_SIZE(cmd_bootm_sub));
+
+	if (cmd)
+		printf("%s %d\n", cmd->name, cmd->cmd);

 	/* start */
 	if (strcmp(argv[1], "start") == 0) {


More information about the U-Boot mailing list