On Fri, 14 Nov 2025 at 11:33, Heinrich Schuchardt <[email protected]> wrote: > > Use global st_boottime and st_runtime. > > Signed-off-by: Heinrich Schuchardt <[email protected]>
Acked-by: Ilias Apalodimas <[email protected]> > --- > lib/efi_selftest/efi_selftest_variables.c | 118 +++++++++------------- > 1 file changed, 50 insertions(+), 68 deletions(-) > > diff --git a/lib/efi_selftest/efi_selftest_variables.c > b/lib/efi_selftest/efi_selftest_variables.c > index b92c3276b61..976eee8dcef 100644 > --- a/lib/efi_selftest/efi_selftest_variables.c > +++ b/lib/efi_selftest/efi_selftest_variables.c > @@ -13,8 +13,6 @@ > #define EFI_ST_MAX_DATA_SIZE 16 > #define EFI_ST_MAX_VARNAME_SIZE 80 > > -static struct efi_boot_services *boottime; > -static struct efi_runtime_services *runtime; > static const efi_guid_t guid_vendor0 = > EFI_GUID(0x67029eb5, 0x0af2, 0xf6b1, > 0xda, 0x53, 0xfc, 0xb5, 0x66, 0xdd, 0x1c, 0xe6); > @@ -22,21 +20,6 @@ static const efi_guid_t guid_vendor1 = > EFI_GUID(0xff629290, 0x1fc1, 0xd73f, > 0x8f, 0xb1, 0x32, 0xf9, 0x0c, 0xa0, 0x42, 0xea); > > -/* > - * Setup unit test. > - * > - * @handle handle of the loaded image > - * @systable system table > - */ > -static int setup(const efi_handle_t img_handle, > - const struct efi_system_table *systable) > -{ > - boottime = systable->boottime; > - runtime = systable->runtime; > - > - return EFI_ST_SUCCESS; > -} > - > /* > * Execute unit test. > */ > @@ -59,17 +42,17 @@ static int execute(void) > return EFI_ST_FAILURE; > } > /* Set variable 0 */ > - ret = runtime->set_variable(u"efi_st_var0", &guid_vendor0, > - EFI_VARIABLE_BOOTSERVICE_ACCESS, > - 3, v + 4); > + ret = st_runtime->set_variable(u"efi_st_var0", &guid_vendor0, > + EFI_VARIABLE_BOOTSERVICE_ACCESS, 3, > + v + 4); > if (ret != EFI_SUCCESS) { > efi_st_error("SetVariable failed\n"); > return EFI_ST_FAILURE; > } > data[3] = 0xff; > len = 3; > - ret = runtime->get_variable(u"efi_st_var0", &guid_vendor0, > - &attr, &len, data); > + ret = st_runtime->get_variable(u"efi_st_var0", &guid_vendor0, &attr, > + &len, data); > if (ret != EFI_SUCCESS) { > efi_st_error("GetVariable failed\n"); > return EFI_ST_FAILURE; > @@ -83,16 +66,15 @@ static int execute(void) > return EFI_ST_FAILURE; > } > /* Set variable 1 */ > - ret = runtime->set_variable(u"efi_st_var1", &guid_vendor1, > - EFI_VARIABLE_BOOTSERVICE_ACCESS, > - 8, v); > + ret = st_runtime->set_variable(u"efi_st_var1", &guid_vendor1, > + EFI_VARIABLE_BOOTSERVICE_ACCESS, 8, v); > if (ret != EFI_SUCCESS) { > efi_st_error("SetVariable failed\n"); > return EFI_ST_FAILURE; > } > len = EFI_ST_MAX_DATA_SIZE; > - ret = runtime->get_variable(u"efi_st_var1", &guid_vendor1, > - &attr, &len, data); > + ret = st_runtime->get_variable(u"efi_st_var1", &guid_vendor1, &attr, > + &len, data); > if (ret != EFI_SUCCESS) { > efi_st_error("GetVariable failed\n"); > return EFI_ST_FAILURE; > @@ -107,17 +89,17 @@ static int execute(void) > return EFI_ST_FAILURE; > } > /* Append variable 1 */ > - ret = runtime->set_variable(u"efi_st_var1", &guid_vendor1, > - EFI_VARIABLE_BOOTSERVICE_ACCESS | > - EFI_VARIABLE_APPEND_WRITE, > - 7, v + 8); > + ret = st_runtime->set_variable(u"efi_st_var1", &guid_vendor1, > + EFI_VARIABLE_BOOTSERVICE_ACCESS | > + EFI_VARIABLE_APPEND_WRITE, > + 7, v + 8); > if (ret != EFI_SUCCESS) { > efi_st_error("SetVariable(APPEND_WRITE) failed\n"); > return EFI_ST_FAILURE; > } > len = EFI_ST_MAX_DATA_SIZE; > - ret = runtime->get_variable(u"efi_st_var1", &guid_vendor1, > - &attr, &len, data); > + ret = st_runtime->get_variable(u"efi_st_var1", &guid_vendor1, &attr, > + &len, data); > if (ret != EFI_SUCCESS) { > efi_st_error("GetVariable failed\n"); > return EFI_ST_FAILURE; > @@ -129,34 +111,35 @@ static int execute(void) > efi_st_todo("GetVariable returned wrong value\n"); > > /* Append variable 2, write to non-existent variable with datasize=0 > */ > - ret = runtime->set_variable(u"efi_none", &guid_vendor1, > - EFI_VARIABLE_BOOTSERVICE_ACCESS | > - EFI_VARIABLE_APPEND_WRITE, > - 0, v); > + ret = st_runtime->set_variable(u"efi_none", &guid_vendor1, > + EFI_VARIABLE_BOOTSERVICE_ACCESS | > + EFI_VARIABLE_APPEND_WRITE, > + 0, v); > if (ret != EFI_SUCCESS) { > efi_st_error( > "SetVariable(APPEND_WRITE) with size 0 to > non-existent variable returns wrong code\n"); > return EFI_ST_FAILURE; > } > len = EFI_ST_MAX_DATA_SIZE; > - ret = runtime->get_variable(u"efi_none", &guid_vendor1, > - &attr, &len, data); > + ret = st_runtime->get_variable(u"efi_none", &guid_vendor1, &attr, > &len, > + data); > if (ret != EFI_NOT_FOUND) { > efi_st_error("Variable must not be created\n"); > return EFI_ST_FAILURE; > } > /* Append variable 2, write to non-existent variable with valid data > size*/ > - ret = runtime->set_variable(u"efi_none", &guid_vendor1, > - EFI_VARIABLE_BOOTSERVICE_ACCESS | > - EFI_VARIABLE_APPEND_WRITE, > - 15, v); > + ret = st_runtime->set_variable(u"efi_none", &guid_vendor1, > + EFI_VARIABLE_BOOTSERVICE_ACCESS | > + EFI_VARIABLE_APPEND_WRITE, > + 15, v); > if (ret != EFI_SUCCESS) { > - efi_st_error("SetVariable(APPEND_WRITE) with valid size and > data to non-existent variable must be succcessful\n"); > + efi_st_error( > + "SetVariable(APPEND_WRITE) with valid size and data > to non-existent variable must be succcessful\n"); > return EFI_ST_FAILURE; > } > len = EFI_ST_MAX_DATA_SIZE; > - ret = runtime->get_variable(u"efi_none", &guid_vendor1, > - &attr, &len, data); > + ret = st_runtime->get_variable(u"efi_none", &guid_vendor1, &attr, > &len, > + data); > if (ret != EFI_SUCCESS) { > efi_st_error("GetVariable failed\n"); > return EFI_ST_FAILURE; > @@ -167,61 +150,60 @@ static int execute(void) > if (memcmp(data, v, len)) > efi_st_todo("GetVariable returned wrong value\n"); > /* Delete variable efi_none */ > - ret = runtime->set_variable(u"efi_none", &guid_vendor1, > - 0, 0, NULL); > + ret = st_runtime->set_variable(u"efi_none", &guid_vendor1, 0, 0, > NULL); > if (ret != EFI_SUCCESS) { > efi_st_error("SetVariable failed\n"); > return EFI_ST_FAILURE; > } > len = EFI_ST_MAX_DATA_SIZE; > - ret = runtime->get_variable(u"efi_none", &guid_vendor1, > - &attr, &len, data); > + ret = st_runtime->get_variable(u"efi_none", &guid_vendor1, &attr, > &len, > + data); > if (ret != EFI_NOT_FOUND) { > efi_st_error("Variable was not deleted\n"); > return EFI_ST_FAILURE; > } > /* Enumerate variables */ > > - ret = runtime->get_next_variable_name(NULL, u"efi_st_var1", &guid); > + ret = st_runtime->get_next_variable_name(NULL, u"efi_st_var1", &guid); > if (ret != EFI_INVALID_PARAMETER) { > efi_st_error("GetNextVariableName missing parameter check\n"); > return EFI_ST_FAILURE; > } > > len = 24; > - ret = runtime->get_next_variable_name(&len, NULL, &guid); > + ret = st_runtime->get_next_variable_name(&len, NULL, &guid); > if (ret != EFI_INVALID_PARAMETER) { > efi_st_error("GetNextVariableName missing parameter check\n"); > return EFI_ST_FAILURE; > } > > len = 24; > - ret = runtime->get_next_variable_name(&len, u"efi_st_var1", NULL); > + ret = st_runtime->get_next_variable_name(&len, u"efi_st_var1", NULL); > if (ret != EFI_INVALID_PARAMETER) { > efi_st_error("GetNextVariableName missing parameter check\n"); > return EFI_ST_FAILURE; > } > > len = 1; > - ret = runtime->get_next_variable_name(&len, u"", &guid); > + ret = st_runtime->get_next_variable_name(&len, u"", &guid); > if (ret != EFI_INVALID_PARAMETER) { > efi_st_error("GetNextVariableName missing parameter check\n"); > return EFI_ST_FAILURE; > } > > len = 16; > - ret = runtime->get_next_variable_name(&len, u"efi_st_var1", &guid); > + ret = st_runtime->get_next_variable_name(&len, u"efi_st_var1", &guid); > if (ret != EFI_INVALID_PARAMETER) { > efi_st_error("GetNextVariableName missing parameter check\n"); > return EFI_ST_FAILURE; > } > > - boottime->set_mem(&guid, 16, 0); > + st_boottime->set_mem(&guid, 16, 0); > *varname = 0; > flag = 0; > for (;;) { > len = EFI_ST_MAX_VARNAME_SIZE; > - ret = runtime->get_next_variable_name(&len, varname, &guid); > + ret = st_runtime->get_next_variable_name(&len, varname, > &guid); > if (ret == EFI_NOT_FOUND) > break; > if (ret != EFI_SUCCESS) { > @@ -233,8 +215,9 @@ static int execute(void) > !efi_st_strcmp_16_8(varname, "efi_st_var0")) { > flag |= 1; > if (len != 24) { > - efi_st_error("GetNextVariableName report > wrong length %u, expected 24\n", > - (unsigned int)len); > + efi_st_error( > + "GetNextVariableName report wrong > length %u, expected 24\n", > + (unsigned int)len); > return EFI_ST_FAILURE; > } > } > @@ -248,29 +231,29 @@ static int execute(void) > return EFI_ST_FAILURE; > } > /* Delete variable 1 */ > - ret = runtime->set_variable(u"efi_st_var1", &guid_vendor1, > - 0, 0, NULL); > + ret = st_runtime->set_variable(u"efi_st_var1", &guid_vendor1, 0, 0, > + NULL); > if (ret != EFI_SUCCESS) { > efi_st_error("SetVariable failed\n"); > return EFI_ST_FAILURE; > } > len = EFI_ST_MAX_DATA_SIZE; > - ret = runtime->get_variable(u"efi_st_var1", &guid_vendor1, > - &attr, &len, data); > + ret = st_runtime->get_variable(u"efi_st_var1", &guid_vendor1, &attr, > + &len, data); > if (ret != EFI_NOT_FOUND) { > efi_st_error("Variable was not deleted\n"); > return EFI_ST_FAILURE; > } > /* Delete variable 0 */ > - ret = runtime->set_variable(u"efi_st_var0", &guid_vendor0, > - 0, 0, NULL); > + ret = st_runtime->set_variable(u"efi_st_var0", &guid_vendor0, 0, 0, > + NULL); > if (ret != EFI_SUCCESS) { > efi_st_error("SetVariable failed\n"); > return EFI_ST_FAILURE; > } > len = EFI_ST_MAX_DATA_SIZE; > - ret = runtime->get_variable(u"efi_st_var0", &guid_vendor0, > - &attr, &len, data); > + ret = st_runtime->get_variable(u"efi_st_var0", &guid_vendor0, &attr, > + &len, data); > if (ret != EFI_NOT_FOUND) { > efi_st_error("Variable was not deleted\n"); > return EFI_ST_FAILURE; > @@ -282,6 +265,5 @@ static int execute(void) > EFI_UNIT_TEST(variables) = { > .name = "variables", > .phase = EFI_EXECUTE_BEFORE_BOOTTIME_EXIT, > - .setup = setup, > .execute = execute, > }; > -- > 2.51.0 >

