aboutsummaryrefslogtreecommitdiff
path: root/include/bootm.h
diff options
context:
space:
mode:
authorSimon Glass <sjg@chromium.org>2023-12-15 20:14:12 -0700
committerTom Rini <trini@konsulko.com>2023-12-21 16:07:52 -0500
commitc49216253d4357500a96b849bc3a02896093a9a9 (patch)
tree301668f68deadfb367e28e22d54e6311be414b17 /include/bootm.h
parent59ca40a954367c08eac648fddd63857118e446ce (diff)
downloadu-boot-c49216253d4357500a96b849bc3a02896093a9a9.zip
u-boot-c49216253d4357500a96b849bc3a02896093a9a9.tar.gz
u-boot-c49216253d4357500a96b849bc3a02896093a9a9.tar.bz2
bootm: Create a struct for argument information
Some OS functions require the arguments to the 'bootm' command. This is inconvenient for two reasons. Firstly, there may not be any actual command, if CMDLINE is not enabled and programmatic boot is being used. Secondly, most functions don't require the arguments, so it is inefficient to pass them when not needed. For example it increases code size. Create a new struct which holds the arguments, which can be used if needed. Add the images pointer as well, since this is commonly needed. Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Tom Rini <trini@konsulko.com>
Diffstat (limited to 'include/bootm.h')
-rw-r--r--include/bootm.h16
1 files changed, 15 insertions, 1 deletions
diff --git a/include/bootm.h b/include/bootm.h
index f5229ea..a6d5d5c 100644
--- a/include/bootm.h
+++ b/include/bootm.h
@@ -16,6 +16,20 @@ struct cmd_tbl;
#define BOOTM_ERR_OVERLAP (-2)
#define BOOTM_ERR_UNIMPLEMENTED (-3)
+/**
+ * struct bootm_info() - information used when processing images to boot
+ *
+ * @images: images information
+ * @argc: Number of arguments to the command (excluding the actual command).
+ * This is 0 if there are no arguments
+ * @argv: NULL-terminated list of arguments, or NULL if there are no arguments
+ */
+struct bootm_info {
+ struct bootm_headers *images;
+ int argc;
+ char *const *argv;
+};
+
/*
* Continue booting an OS image; caller already has:
* - copied image header to global variable `header'
@@ -39,7 +53,7 @@ typedef int boot_os_fn(int flag, int argc, char *const argv[],
extern boot_os_fn do_bootm_linux;
extern boot_os_fn do_bootm_vxworks;
-int do_bootelf(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]);
+int do_bootelf(struct cmd_tbl *cmdtp, int fglag, int argc, char *const argv[]);
boot_os_fn *bootm_os_get_boot_func(int os);