Message ID | 20221015112228.18578-1-heinrich.schuchardt@canonical.com |
---|---|
State | Accepted, archived |
Delegated to: | Heinrich Schuchardt |
Headers | show |
Series | cmd: simplify efidebug | expand |
On Sat, Oct 15, 2022 at 01:22:28PM +0200, Heinrich Schuchardt wrote: > * don't use EFI_CALL() for variable services > * don't use runtime pointer to access exported function > > Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com> > --- > cmd/efidebug.c | 47 +++++++++++++++++++++-------------------------- > 1 file changed, 21 insertions(+), 26 deletions(-) > > diff --git a/cmd/efidebug.c b/cmd/efidebug.c > index 4b49f30d93..ef239bb34b 100644 > --- a/cmd/efidebug.c > +++ b/cmd/efidebug.c > @@ -25,7 +25,6 @@ > #include <linux/err.h> > > #define BS systab.boottime > -#define RT systab.runtime > > #ifdef CONFIG_EFI_HAVE_CAPSULE_SUPPORT > /** > @@ -76,7 +75,7 @@ static int do_efi_capsule_update(struct cmd_tbl *cmdtp, int flag, > capsule->capsule_image_size); > } > > - ret = EFI_CALL(RT->update_capsule(&capsule, 1, 0)); > + ret = EFI_CALL(efi_update_capsule(&capsule, 1, 0)); > if (ret) { > printf("Cannot handle a capsule at %p\n", capsule); > return CMD_RET_FAILURE; > @@ -995,17 +994,16 @@ static void show_efi_boot_opt(u16 *varname16) > efi_status_t ret; > > size = 0; > - ret = EFI_CALL(efi_get_variable(varname16, &efi_global_variable_guid, > - NULL, &size, NULL)); > + ret = efi_get_variable_int(varname16, &efi_global_variable_guid, > + NULL, &size, NULL, NULL); > if (ret == EFI_BUFFER_TOO_SMALL) { > data = malloc(size); > if (!data) { > printf("ERROR: Out of memory\n"); > return; > } > - ret = EFI_CALL(efi_get_variable(varname16, > - &efi_global_variable_guid, > - NULL, &size, data)); > + ret = efi_get_variable_int(varname16, &efi_global_variable_guid, > + NULL, &size, data, NULL); > if (ret == EFI_SUCCESS) > show_efi_boot_opt_data(varname16, data, &size); > free(data); > @@ -1057,8 +1055,7 @@ static int do_efi_boot_dump(struct cmd_tbl *cmdtp, int flag, > var_name16[0] = 0; > for (;;) { > size = buf_size; > - ret = EFI_CALL(efi_get_next_variable_name(&size, var_name16, > - &guid)); > + ret = efi_get_next_variable_name_int(&size, var_name16, &guid); > if (ret == EFI_NOT_FOUND) > break; > if (ret == EFI_BUFFER_TOO_SMALL) { > @@ -1069,9 +1066,8 @@ static int do_efi_boot_dump(struct cmd_tbl *cmdtp, int flag, > return CMD_RET_FAILURE; > } > var_name16 = p; > - ret = EFI_CALL(efi_get_next_variable_name(&size, > - var_name16, > - &guid)); > + ret = efi_get_next_variable_name_int(&size, var_name16, > + &guid); > } > if (ret != EFI_SUCCESS) { > free(var_name16); > @@ -1114,8 +1110,8 @@ static int show_efi_boot_order(void) > efi_status_t ret; > > size = 0; > - ret = EFI_CALL(efi_get_variable(u"BootOrder", &efi_global_variable_guid, > - NULL, &size, NULL)); > + ret = efi_get_variable_int(u"BootOrder", &efi_global_variable_guid, > + NULL, &size, NULL, NULL); > if (ret != EFI_BUFFER_TOO_SMALL) { > if (ret == EFI_NOT_FOUND) { > printf("BootOrder not defined\n"); > @@ -1129,8 +1125,8 @@ static int show_efi_boot_order(void) > printf("ERROR: Out of memory\n"); > return CMD_RET_FAILURE; > } > - ret = EFI_CALL(efi_get_variable(u"BootOrder", &efi_global_variable_guid, > - NULL, &size, bootorder)); > + ret = efi_get_variable_int(u"BootOrder", &efi_global_variable_guid, > + NULL, &size, bootorder, NULL); > if (ret != EFI_SUCCESS) { > ret = CMD_RET_FAILURE; > goto out; > @@ -1142,9 +1138,9 @@ static int show_efi_boot_order(void) > "Boot", bootorder[i]); > > size = 0; > - ret = EFI_CALL(efi_get_variable(var_name16, > - &efi_global_variable_guid, NULL, > - &size, NULL)); > + ret = efi_get_variable_int(var_name16, > + &efi_global_variable_guid, NULL, > + &size, NULL, NULL); > if (ret != EFI_BUFFER_TOO_SMALL) { > printf("%2d: %ls: (not defined)\n", i + 1, var_name16); > continue; > @@ -1155,9 +1151,9 @@ static int show_efi_boot_order(void) > ret = CMD_RET_FAILURE; > goto out; > } > - ret = EFI_CALL(efi_get_variable(var_name16, > - &efi_global_variable_guid, NULL, > - &size, data)); > + ret = efi_get_variable_int(var_name16, > + &efi_global_variable_guid, NULL, > + &size, data, NULL); > if (ret != EFI_SUCCESS) { > free(data); > ret = CMD_RET_FAILURE; > @@ -1444,10 +1440,9 @@ static int do_efi_query_info(struct cmd_tbl *cmdtp, int flag, > EFI_VARIABLE_TIME_BASED_AUTHENTICATED_WRITE_ACCESS; > } > > - ret = EFI_CALL(efi_query_variable_info(attr, > - &max_variable_storage_size, > - &remain_variable_storage_size, > - &max_variable_size)); > + ret = efi_query_variable_info_int(attr, &max_variable_storage_size, > + &remain_variable_storage_size, > + &max_variable_size); > if (ret != EFI_SUCCESS) { > printf("Error: Cannot query UEFI variables, r = %lu\n", > ret & ~EFI_ERROR_MASK); > -- > 2.37.2 > Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
diff --git a/cmd/efidebug.c b/cmd/efidebug.c index 4b49f30d93..ef239bb34b 100644 --- a/cmd/efidebug.c +++ b/cmd/efidebug.c @@ -25,7 +25,6 @@ #include <linux/err.h> #define BS systab.boottime -#define RT systab.runtime #ifdef CONFIG_EFI_HAVE_CAPSULE_SUPPORT /** @@ -76,7 +75,7 @@ static int do_efi_capsule_update(struct cmd_tbl *cmdtp, int flag, capsule->capsule_image_size); } - ret = EFI_CALL(RT->update_capsule(&capsule, 1, 0)); + ret = EFI_CALL(efi_update_capsule(&capsule, 1, 0)); if (ret) { printf("Cannot handle a capsule at %p\n", capsule); return CMD_RET_FAILURE; @@ -995,17 +994,16 @@ static void show_efi_boot_opt(u16 *varname16) efi_status_t ret; size = 0; - ret = EFI_CALL(efi_get_variable(varname16, &efi_global_variable_guid, - NULL, &size, NULL)); + ret = efi_get_variable_int(varname16, &efi_global_variable_guid, + NULL, &size, NULL, NULL); if (ret == EFI_BUFFER_TOO_SMALL) { data = malloc(size); if (!data) { printf("ERROR: Out of memory\n"); return; } - ret = EFI_CALL(efi_get_variable(varname16, - &efi_global_variable_guid, - NULL, &size, data)); + ret = efi_get_variable_int(varname16, &efi_global_variable_guid, + NULL, &size, data, NULL); if (ret == EFI_SUCCESS) show_efi_boot_opt_data(varname16, data, &size); free(data); @@ -1057,8 +1055,7 @@ static int do_efi_boot_dump(struct cmd_tbl *cmdtp, int flag, var_name16[0] = 0; for (;;) { size = buf_size; - ret = EFI_CALL(efi_get_next_variable_name(&size, var_name16, - &guid)); + ret = efi_get_next_variable_name_int(&size, var_name16, &guid); if (ret == EFI_NOT_FOUND) break; if (ret == EFI_BUFFER_TOO_SMALL) { @@ -1069,9 +1066,8 @@ static int do_efi_boot_dump(struct cmd_tbl *cmdtp, int flag, return CMD_RET_FAILURE; } var_name16 = p; - ret = EFI_CALL(efi_get_next_variable_name(&size, - var_name16, - &guid)); + ret = efi_get_next_variable_name_int(&size, var_name16, + &guid); } if (ret != EFI_SUCCESS) { free(var_name16); @@ -1114,8 +1110,8 @@ static int show_efi_boot_order(void) efi_status_t ret; size = 0; - ret = EFI_CALL(efi_get_variable(u"BootOrder", &efi_global_variable_guid, - NULL, &size, NULL)); + ret = efi_get_variable_int(u"BootOrder", &efi_global_variable_guid, + NULL, &size, NULL, NULL); if (ret != EFI_BUFFER_TOO_SMALL) { if (ret == EFI_NOT_FOUND) { printf("BootOrder not defined\n"); @@ -1129,8 +1125,8 @@ static int show_efi_boot_order(void) printf("ERROR: Out of memory\n"); return CMD_RET_FAILURE; } - ret = EFI_CALL(efi_get_variable(u"BootOrder", &efi_global_variable_guid, - NULL, &size, bootorder)); + ret = efi_get_variable_int(u"BootOrder", &efi_global_variable_guid, + NULL, &size, bootorder, NULL); if (ret != EFI_SUCCESS) { ret = CMD_RET_FAILURE; goto out; @@ -1142,9 +1138,9 @@ static int show_efi_boot_order(void) "Boot", bootorder[i]); size = 0; - ret = EFI_CALL(efi_get_variable(var_name16, - &efi_global_variable_guid, NULL, - &size, NULL)); + ret = efi_get_variable_int(var_name16, + &efi_global_variable_guid, NULL, + &size, NULL, NULL); if (ret != EFI_BUFFER_TOO_SMALL) { printf("%2d: %ls: (not defined)\n", i + 1, var_name16); continue; @@ -1155,9 +1151,9 @@ static int show_efi_boot_order(void) ret = CMD_RET_FAILURE; goto out; } - ret = EFI_CALL(efi_get_variable(var_name16, - &efi_global_variable_guid, NULL, - &size, data)); + ret = efi_get_variable_int(var_name16, + &efi_global_variable_guid, NULL, + &size, data, NULL); if (ret != EFI_SUCCESS) { free(data); ret = CMD_RET_FAILURE; @@ -1444,10 +1440,9 @@ static int do_efi_query_info(struct cmd_tbl *cmdtp, int flag, EFI_VARIABLE_TIME_BASED_AUTHENTICATED_WRITE_ACCESS; } - ret = EFI_CALL(efi_query_variable_info(attr, - &max_variable_storage_size, - &remain_variable_storage_size, - &max_variable_size)); + ret = efi_query_variable_info_int(attr, &max_variable_storage_size, + &remain_variable_storage_size, + &max_variable_size); if (ret != EFI_SUCCESS) { printf("Error: Cannot query UEFI variables, r = %lu\n", ret & ~EFI_ERROR_MASK);
* don't use EFI_CALL() for variable services * don't use runtime pointer to access exported function Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com> --- cmd/efidebug.c | 47 +++++++++++++++++++++-------------------------- 1 file changed, 21 insertions(+), 26 deletions(-)