Message ID | 1389371417-379-4-git-send-email-roy.franz@linaro.org |
---|---|
State | New |
Headers | show |
On Mon, Jan 13, 2014 at 7:04 AM, Matt Fleming <matt@console-pimps.org> wrote: > On Fri, 10 Jan, at 08:30:12AM, Roy Franz wrote: >> Add an EFI stub helper function to retrieve the EFI command line using >> the LOADED_IMAGE_PROTOCOL, and convert it to ASCII. This function will >> be shared by the various EFI stub implementations. >> >> Signed-off-by: Roy Franz <roy.franz@linaro.org> >> --- >> drivers/firmware/efi/efi-stub-helper.c | 30 ++++++++++++++++++++++++++++++ >> 1 file changed, 30 insertions(+) >> >> diff --git a/drivers/firmware/efi/efi-stub-helper.c b/drivers/firmware/efi/efi-stub-helper.c >> index eb5d2eb..f657456 100644 >> --- a/drivers/firmware/efi/efi-stub-helper.c >> +++ b/drivers/firmware/efi/efi-stub-helper.c >> @@ -637,3 +637,33 @@ static char *efi_convert_cmdline_to_ascii(efi_system_table_t *sys_table_arg, >> *cmd_line_len = options_size; >> return (char *)cmdline_addr; >> } >> + >> +/* >> + * get the command line from EFI, using the LOADED_IMAGE >> + * protocol, and convert to ASCII. >> + * >> + */ >> +static void efi_get_cmdline(efi_system_table_t *sys_table, >> + efi_loaded_image_t **image, >> + void *handle, char **cmdline_ptr) >> +{ > > Wouldn't this prototype make more sense? > > static char *efi_get_cmdline(efi_system_table_t *sys_table, > efi_loaded_image_t **image, > void *handle); > > Is this function really worth implementing at all? Certainly on x86, we > lookup the loaded image protocol for reasons other than parsing the > command line, and so would need to do it in the caller anyway. > > -- > Matt Fleming, Intel Open Source Technology Center Yeah, this should just go away. This was the result of some over-zealous moving code from arm/arm64 to shared code. Roy
diff --git a/drivers/firmware/efi/efi-stub-helper.c b/drivers/firmware/efi/efi-stub-helper.c index eb5d2eb..f657456 100644 --- a/drivers/firmware/efi/efi-stub-helper.c +++ b/drivers/firmware/efi/efi-stub-helper.c @@ -637,3 +637,33 @@ static char *efi_convert_cmdline_to_ascii(efi_system_table_t *sys_table_arg, *cmd_line_len = options_size; return (char *)cmdline_addr; } + +/* + * get the command line from EFI, using the LOADED_IMAGE + * protocol, and convert to ASCII. + * + */ +static void efi_get_cmdline(efi_system_table_t *sys_table, + efi_loaded_image_t **image, + void *handle, char **cmdline_ptr) +{ + efi_guid_t proto = LOADED_IMAGE_PROTOCOL_GUID; + efi_status_t status; + int cmdline_size; + + status = efi_call_phys3(sys_table->boottime->handle_protocol, + handle, &proto, (void *)image); + if (status != EFI_SUCCESS) { + pr_efi_err(sys_table, "Failed to get handle for LOADED_IMAGE_PROTOCOL\n"); + *cmdline_ptr = NULL; + return; + } + + /* + * We are going to copy this into device tree, so we don't care where + * in memory it is. + */ + *cmdline_ptr = efi_convert_cmdline_to_ascii(sys_table, *image, + &cmdline_size); + +}
Add an EFI stub helper function to retrieve the EFI command line using the LOADED_IMAGE_PROTOCOL, and convert it to ASCII. This function will be shared by the various EFI stub implementations. Signed-off-by: Roy Franz <roy.franz@linaro.org> --- drivers/firmware/efi/efi-stub-helper.c | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+)