efi_selftest: expose runtime table address

Save the address of the EFI runtime as a global variable.
This allows to simplify the setup of tests.

Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
This commit is contained in:
Heinrich Schuchardt 2025-11-14 10:32:40 +01:00
parent 8ff90aa64b
commit 4988e683bc
2 changed files with 5 additions and 4 deletions

View File

@ -19,6 +19,7 @@
extern const struct efi_system_table *st_systable;
extern const struct efi_boot_services *st_boottime;
extern const struct efi_runtime_services *st_runtime;
/**
* efi_st_printf() - print a message

View File

@ -16,7 +16,7 @@
const struct efi_system_table *st_systable;
const struct efi_boot_services *st_boottime;
static const struct efi_runtime_services *runtime;
const struct efi_runtime_services *st_runtime;
static efi_handle_t handle;
static u16 reset_message[] = u"Selftest completed";
static int *setup_status;
@ -259,7 +259,7 @@ efi_status_t EFIAPI efi_selftest(efi_handle_t image_handle,
st_systable = systab;
st_boottime = st_systable->boottime;
runtime = st_systable->runtime;
st_runtime = st_systable->runtime;
handle = image_handle;
con_out = st_systable->con_out;
con_in = st_systable->con_in;
@ -347,8 +347,8 @@ efi_status_t EFIAPI efi_selftest(efi_handle_t image_handle,
efi_st_get_key();
if (IS_ENABLED(CONFIG_EFI_HAVE_RUNTIME_RESET)) {
runtime->reset_system(EFI_RESET_WARM, EFI_NOT_READY,
sizeof(reset_message), reset_message);
st_runtime->reset_system(EFI_RESET_WARM, EFI_NOT_READY,
sizeof(reset_message), reset_message);
} else {
efi_restore_gd();
do_reset(NULL, 0, 0, NULL);