From: Simon Glass Date: Sat, 16 Dec 2023 03:14:20 +0000 (-0700) Subject: bootm: Tidy up boot_selected_os() X-Git-Url: http://git.dujemihanovic.xyz/?a=commitdiff_plain;h=725ddf1f24f7d08aa344f64d06c62cf5f50a6b6c;p=u-boot.git bootm: Tidy up boot_selected_os() Use struct bootm_info with this function, to avoiding needing to create a new one. Signed-off-by: Simon Glass Reviewed-by: Tom Rini --- diff --git a/boot/bootm.c b/boot/bootm.c index f009e9ace6..66b7e350aa 100644 --- a/boot/bootm.c +++ b/boot/bootm.c @@ -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: diff --git a/boot/bootm_os.c b/boot/bootm_os.c index 4f547b1b11..47a5fd78fb 100644 --- a/boot/bootm_os.c +++ b/boot/bootm_os.c @@ -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; diff --git a/include/bootm.h b/include/bootm.h index dbf883bb08..628d3d3e83 100644 --- a/include/bootm.h +++ b/include/bootm.h @@ -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);