]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
bootm: Tidy up boot_selected_os()
authorSimon Glass <sjg@chromium.org>
Sat, 16 Dec 2023 03:14:20 +0000 (20:14 -0700)
committerTom Rini <trini@konsulko.com>
Thu, 21 Dec 2023 21:07:52 +0000 (16:07 -0500)
Use struct bootm_info with this function, to avoiding needing to
create a new one.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Tom Rini <trini@konsulko.com>
boot/bootm.c
boot/bootm_os.c
include/bootm.h

index f009e9ace6520fbd14b4805357f1b61c566dbe09..66b7e350aa86b870824745b8b1dee52a7e1d6184 100644 (file)
@@ -1092,8 +1092,7 @@ int bootm_run_states(struct bootm_info *bmi, int states)
        if (!ret && (states & BOOTM_STATE_OS_FAKE_GO)) {
                char *cmd_list = env_get("fakegocmd");
 
-               ret = boot_selected_os(bmi->argc, bmi->argv,
-                                      BOOTM_STATE_OS_FAKE_GO, images, boot_fn);
+               ret = boot_selected_os(BOOTM_STATE_OS_FAKE_GO, bmi, boot_fn);
                if (!ret && cmd_list)
                        ret = run_command_list(cmd_list, -1, 0);
        }
@@ -1107,8 +1106,7 @@ int bootm_run_states(struct bootm_info *bmi, int states)
 
        /* Now run the OS! We hope this doesn't return */
        if (!ret && (states & BOOTM_STATE_OS_GO))
-               ret = boot_selected_os(bmi->argc, bmi->argv, BOOTM_STATE_OS_GO,
-                                      images, boot_fn);
+               ret = boot_selected_os(BOOTM_STATE_OS_GO, bmi, boot_fn);
 
        /* Deal with any fallout */
 err:
index 4f547b1b1148b2e464831ce05660902c1aea3617..47a5fd78fb6a464191c7852d7270f998f590a2e6 100644 (file)
@@ -566,20 +566,15 @@ __weak void board_preboot_os(void)
        /* please define board specific board_preboot_os() */
 }
 
-int boot_selected_os(int argc, char *const argv[], int state,
-                    struct bootm_headers *images, boot_os_fn *boot_fn)
+int boot_selected_os(int state, struct bootm_info *bmi, boot_os_fn *boot_fn)
 {
-       struct bootm_info bmi;
        arch_preboot_os();
        board_preboot_os();
 
-       bmi.argc = argc;
-       bmi.argv = argv;
-       bmi.images = images;
-       boot_fn(state, &bmi);
+       boot_fn(state, bmi);
 
        /* Stand-alone may return when 'autostart' is 'no' */
-       if (images->os.type == IH_TYPE_STANDALONE ||
+       if (bmi->images->os.type == IH_TYPE_STANDALONE ||
            IS_ENABLED(CONFIG_SANDBOX) ||
            state == BOOTM_STATE_OS_FAKE_GO) /* We expect to return */
                return 0;
index dbf883bb08adc3528c9c4dfe0eb2914483536506..628d3d3e83ffb539ad0de3e5db2f3c8f1369317a 100644 (file)
@@ -91,8 +91,7 @@ boot_os_fn *bootm_os_get_boot_func(int os);
 int bootm_host_load_images(const void *fit, int cfg_noffset);
 #endif
 
-int boot_selected_os(int argc, char *const argv[], int state,
-                    struct bootm_headers *images, boot_os_fn *boot_fn);
+int boot_selected_os(int state, struct bootm_info *bmi, boot_os_fn *boot_fn);
 
 ulong bootm_disable_interrupts(void);