
On Thu, 12 Dec 2024 at 00:38, Simon Glass sjg@chromium.org wrote:
Provide these globals as parameters to this function, on the way to making it possible to start an image without relying on the globals.
Signed-off-by: Simon Glass sjg@chromium.org
Changes in v2:
- Adjust argument ordering for efi_run_image()
lib/efi_loader/efi_bootbin.c | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-)
diff --git a/lib/efi_loader/efi_bootbin.c b/lib/efi_loader/efi_bootbin.c index ec8f4e4f7f4..8febd325f34 100644 --- a/lib/efi_loader/efi_bootbin.c +++ b/lib/efi_loader/efi_bootbin.c @@ -139,9 +139,13 @@ void efi_set_bootdev(const char *dev, const char *devnr, const char *path,
- @source_buffer: memory address of the UEFI image
- @source_size: size of the UEFI image
- @device: EFI device-path
*/
- @image: EFI image-path
- Return: status code
-static efi_status_t efi_run_image(void *source_buffer, efi_uintn_t source_size) +static efi_status_t efi_run_image(void *source_buffer, efi_uintn_t source_size,
struct efi_device_path *device,
struct efi_device_path *image)
{ efi_handle_t mem_handle = NULL, handle; struct efi_device_path *file_path = NULL; @@ -149,7 +153,7 @@ static efi_status_t efi_run_image(void *source_buffer, efi_uintn_t source_size) efi_status_t ret; u16 *load_options;
if (!bootefi_device_path || !bootefi_image_path) {
if (!device || !image) { log_debug("Not loaded from disk\n"); /* * Special case for efi payload not loaded from disk,
@@ -169,9 +173,8 @@ static efi_status_t efi_run_image(void *source_buffer, efi_uintn_t source_size) goto out; msg_path = file_path; } else {
file_path = efi_dp_concat(bootefi_device_path,
bootefi_image_path, 0);
msg_path = bootefi_image_path;
file_path = efi_dp_concat(device, image, 0);
msg_path = image; log_debug("Loaded from disk\n"); }
@@ -208,7 +211,7 @@ out: /**
- efi_binary_run() - run loaded UEFI image
- @image: memory address of the UEFI image
- @image_ptr: memory address of the UEFI image
- @size: size of the UEFI image
- @fdt: device-tree
@@ -217,7 +220,7 @@ out:
- Return: status code
*/ -efi_status_t efi_binary_run(void *image, size_t size, void *fdt) +efi_status_t efi_binary_run(void *image_ptr, size_t size, void *fdt)
The * is enough, please drop the _ptr rename
{ efi_status_t ret;
@@ -233,5 +236,6 @@ efi_status_t efi_binary_run(void *image, size_t size, void *fdt) if (ret != EFI_SUCCESS) return ret;
return efi_run_image(image, size);
return efi_run_image(image_ptr, size, bootefi_device_path,
bootefi_image_path);
}
2.34.1
With the ptr rename removed Reviewed-by: Ilias Apalodimas ilias.apalodimas@linaro.org