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

Signed-off-by: Heinrich Schuchardt <[email protected]>
---
 include/efi_selftest.h          | 1 +
 lib/efi_selftest/efi_selftest.c | 8 ++++----
 2 files changed, 5 insertions(+), 4 deletions(-)

diff --git a/include/efi_selftest.h b/include/efi_selftest.h
index 1b708849bcb..4ee46cbbb66 100644
--- a/include/efi_selftest.h
+++ b/include/efi_selftest.h
@@ -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
diff --git a/lib/efi_selftest/efi_selftest.c b/lib/efi_selftest/efi_selftest.c
index 191da7fc451..2b95713afb4 100644
--- a/lib/efi_selftest/efi_selftest.c
+++ b/lib/efi_selftest/efi_selftest.c
@@ -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);
-- 
2.51.0

Reply via email to