]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
x86: zboot: Avoid iteration in do_zboot_states()
authorSimon Glass <sjg@chromium.org>
Mon, 4 Dec 2023 00:29:29 +0000 (17:29 -0700)
committerTom Rini <trini@konsulko.com>
Wed, 10 Apr 2024 19:49:16 +0000 (13:49 -0600)
Drop the iteration and write out each state in full. This will allow
the arguments to be reduced and adjusted in future patches.

Signed-off-by: Simon Glass <sjg@chromium.org>
cmd/x86/zboot.c

index c9375fb417c149a0175fda15bad7218684f8551f..03cab1d67ebf118c0875ee83611ba280c61210dd 100644 (file)
@@ -136,19 +136,20 @@ U_BOOT_SUBCMDS(zboot,
 int do_zboot_states(struct cmd_tbl *cmdtp, int flag, int argc,
                    char *const argv[], int state_mask)
 {
-       int i;
-
-       for (i = 0; i < ZBOOT_STATE_COUNT; i++) {
-               struct cmd_tbl *cmd = &zboot_subcmds[i];
-               int mask = 1 << i;
-               int ret;
-
-               if (mask & state_mask) {
-                       ret = cmd->cmd(cmd, flag, argc, argv);
-                       if (ret)
-                               return ret;
-               }
-       }
+       int ret;
+
+       if (flag & ZBOOT_STATE_START)
+               ret = do_zboot_start(cmdtp, flag, argc, argv);
+       if (!ret && (flag & ZBOOT_STATE_LOAD))
+               ret = do_zboot_load(cmdtp, flag, argc, argv);
+       if (!ret && (flag & ZBOOT_STATE_SETUP))
+               ret = do_zboot_setup(cmdtp, flag, argc, argv);
+       if (!ret && (flag & ZBOOT_STATE_INFO))
+               ret = do_zboot_info(cmdtp, flag, argc, argv);
+       if (!ret && (flag & ZBOOT_STATE_GO))
+               ret = do_zboot_go(cmdtp, flag, argc, argv);
+       if (ret)
+               return ret;
 
        return 0;
 }