From 50e8b11e16731e92739875e13bc45a46a7667b4b Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Tue, 2 Jul 2024 18:07:35 +0200 Subject: [PATCH] =?utf8?q?efi:=20rename=20efivar=5F(set|get)()=20=E2=86=92?= =?utf8?q?=20efivar=5F(set|get)=5Fstr16()?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit These functions after all write EFI UTF-16 strings, i.e. are relatively high-level, hence give them a specific name indicating the type, to match our other helpers that have similar type suffixes. --- src/boot/efi/boot.c | 24 ++++++++++++------------ src/boot/efi/efivars.c | 10 +++++----- src/boot/efi/efivars.h | 4 ++-- src/boot/efi/export-vars.c | 8 ++++---- src/boot/efi/stub.c | 2 +- 5 files changed, 24 insertions(+), 24 deletions(-) diff --git a/src/boot/efi/boot.c b/src/boot/efi/boot.c index e191d852117..60aa6e9b85d 100644 --- a/src/boot/efi/boot.c +++ b/src/boot/efi/boot.c @@ -491,7 +491,7 @@ static void print_status(Config *config, char16_t *loaded_image_path) { query_screen_resolution(&screen_width, &screen_height); secure = secure_boot_mode(); - (void) efivar_get(MAKE_GUID_PTR(LOADER), u"LoaderDevicePartUUID", &device_part_uuid); + (void) efivar_get_str16(MAKE_GUID_PTR(LOADER), u"LoaderDevicePartUUID", &device_part_uuid); printf(" systemd-boot version: " GIT_VERSION "\n"); if (loaded_image_path) @@ -1105,7 +1105,7 @@ static bool menu_run( /* Update EFI vars after we left the menu to reduce NVRAM writes. */ if (default_efivar_saved != config->idx_default_efivar) - efivar_set(MAKE_GUID_PTR(LOADER), u"LoaderEntryDefault", config->entry_default_efivar, EFI_VARIABLE_NON_VOLATILE); + efivar_set_str16(MAKE_GUID_PTR(LOADER), u"LoaderEntryDefault", config->entry_default_efivar, EFI_VARIABLE_NON_VOLATILE); if (console_mode_efivar_saved != config->console_mode_efivar) { if (config->console_mode_efivar == CONSOLE_MODE_KEEP) @@ -1123,10 +1123,10 @@ static bool menu_run( case TIMEOUT_MENU_DISABLED: assert_not_reached(); case TIMEOUT_MENU_FORCE: - efivar_set(MAKE_GUID_PTR(LOADER), u"LoaderConfigTimeout", u"menu-force", EFI_VARIABLE_NON_VOLATILE); + efivar_set_str16(MAKE_GUID_PTR(LOADER), u"LoaderConfigTimeout", u"menu-force", EFI_VARIABLE_NON_VOLATILE); break; case TIMEOUT_MENU_HIDDEN: - efivar_set(MAKE_GUID_PTR(LOADER), u"LoaderConfigTimeout", u"menu-hidden", EFI_VARIABLE_NON_VOLATILE); + efivar_set_str16(MAKE_GUID_PTR(LOADER), u"LoaderConfigTimeout", u"menu-hidden", EFI_VARIABLE_NON_VOLATILE); break; default: assert(config->timeout_sec_efivar < UINT32_MAX); @@ -1397,7 +1397,7 @@ static EFI_STATUS boot_entry_bump_counters(BootEntry *entry) { /* Let's tell the OS that we renamed this file, so that it knows what to rename to the counter-less name on * success */ new_path = xasprintf("%ls\\%ls", entry->path, entry->next_name); - efivar_set(MAKE_GUID_PTR(LOADER), u"LoaderBootCountPath", new_path, 0); + efivar_set_str16(MAKE_GUID_PTR(LOADER), u"LoaderBootCountPath", new_path, 0); /* If the file we just renamed is the loader path, then let's update that. */ if (streq16(entry->loader, old_path)) { @@ -1527,7 +1527,7 @@ static EFI_STATUS efivar_get_timeout(const char16_t *var, uint64_t *ret_value) { assert(var); assert(ret_value); - err = efivar_get(MAKE_GUID_PTR(LOADER), var, &value); + err = efivar_get_str16(MAKE_GUID_PTR(LOADER), var, &value); if (err != EFI_SUCCESS) return err; @@ -1607,12 +1607,12 @@ static void config_load_defaults(Config *config, EFI_FILE *root_dir) { if (err == EFI_SUCCESS) config->console_mode_efivar = value; - err = efivar_get(MAKE_GUID_PTR(LOADER), u"LoaderEntryOneShot", &config->entry_oneshot); + err = efivar_get_str16(MAKE_GUID_PTR(LOADER), u"LoaderEntryOneShot", &config->entry_oneshot); if (err == EFI_SUCCESS) /* Unset variable now, after all it's "one shot". */ (void) efivar_unset(MAKE_GUID_PTR(LOADER), u"LoaderEntryOneShot", EFI_VARIABLE_NON_VOLATILE); - (void) efivar_get(MAKE_GUID_PTR(LOADER), u"LoaderEntryDefault", &config->entry_default_efivar); + (void) efivar_get_str16(MAKE_GUID_PTR(LOADER), u"LoaderEntryDefault", &config->entry_default_efivar); strtolower16(config->entry_default_config); strtolower16(config->entry_default_efivar); @@ -1622,7 +1622,7 @@ static void config_load_defaults(Config *config, EFI_FILE *root_dir) { config->use_saved_entry = streq16(config->entry_default_config, u"@saved"); config->use_saved_entry_efivar = streq16(config->entry_default_efivar, u"@saved"); if (config->use_saved_entry || config->use_saved_entry_efivar) - (void) efivar_get(MAKE_GUID_PTR(LOADER), u"LoaderEntryLastBooted", &config->entry_saved); + (void) efivar_get_str16(MAKE_GUID_PTR(LOADER), u"LoaderEntryLastBooted", &config->entry_saved); } static void config_load_type1_entries( @@ -2473,7 +2473,7 @@ static void save_selected_entry(const Config *config, const BootEntry *entry) { assert(entry->loader || !entry->call); /* Always export the selected boot entry to the system in a volatile var. */ - (void) efivar_set(MAKE_GUID_PTR(LOADER), u"LoaderEntrySelected", entry->id, 0); + (void) efivar_set_str16(MAKE_GUID_PTR(LOADER), u"LoaderEntrySelected", entry->id, 0); /* Do not save or delete if this was a oneshot boot. */ if (streq16(config->entry_oneshot, entry->id)) @@ -2484,7 +2484,7 @@ static void save_selected_entry(const Config *config, const BootEntry *entry) { if (streq16(config->entry_saved, entry->id)) return; - (void) efivar_set(MAKE_GUID_PTR(LOADER), u"LoaderEntryLastBooted", entry->id, EFI_VARIABLE_NON_VOLATILE); + (void) efivar_set_str16(MAKE_GUID_PTR(LOADER), u"LoaderEntryLastBooted", entry->id, EFI_VARIABLE_NON_VOLATILE); } else /* Delete the non-volatile var if not needed. */ (void) efivar_unset(MAKE_GUID_PTR(LOADER), u"LoaderEntryLastBooted", EFI_VARIABLE_NON_VOLATILE); @@ -2564,7 +2564,7 @@ static void export_loader_variables( assert(loaded_image); (void) efivar_set_time_usec(MAKE_GUID_PTR(LOADER), u"LoaderTimeInitUSec", init_usec); - (void) efivar_set(MAKE_GUID_PTR(LOADER), u"LoaderInfo", u"systemd-boot " GIT_VERSION, 0); + (void) efivar_set_str16(MAKE_GUID_PTR(LOADER), u"LoaderInfo", u"systemd-boot " GIT_VERSION, 0); (void) efivar_set_uint64_le(MAKE_GUID_PTR(LOADER), u"LoaderFeatures", loader_features, 0); } diff --git a/src/boot/efi/efivars.c b/src/boot/efi/efivars.c index b69e1706781..c4ced3dbd1a 100644 --- a/src/boot/efi/efivars.c +++ b/src/boot/efi/efivars.c @@ -14,7 +14,7 @@ EFI_STATUS efivar_set_raw(const EFI_GUID *vendor, const char16_t *name, const vo return RT->SetVariable((char16_t *) name, (EFI_GUID *) vendor, flags, size, (void *) buf); } -EFI_STATUS efivar_set(const EFI_GUID *vendor, const char16_t *name, const char16_t *value, uint32_t flags) { +EFI_STATUS efivar_set_str16(const EFI_GUID *vendor, const char16_t *name, const char16_t *value, uint32_t flags) { assert(vendor); assert(name); @@ -26,7 +26,7 @@ EFI_STATUS efivar_set_uint_string(const EFI_GUID *vendor, const char16_t *name, assert(name); _cleanup_free_ char16_t *str = xasprintf("%zu", i); - return efivar_set(vendor, name, str, flags); + return efivar_set_str16(vendor, name, str, flags); } EFI_STATUS efivar_set_uint32_le(const EFI_GUID *vendor, const char16_t *name, uint32_t value, uint32_t flags) { @@ -76,7 +76,7 @@ EFI_STATUS efivar_unset(const EFI_GUID *vendor, const char16_t *name, uint32_t f return err; } -EFI_STATUS efivar_get(const EFI_GUID *vendor, const char16_t *name, char16_t **ret) { +EFI_STATUS efivar_get_str16(const EFI_GUID *vendor, const char16_t *name, char16_t **ret) { _cleanup_free_ char16_t *buf = NULL; EFI_STATUS err; char16_t *val; @@ -120,7 +120,7 @@ EFI_STATUS efivar_get_uint_string(const EFI_GUID *vendor, const char16_t *name, assert(vendor); assert(name); - err = efivar_get(vendor, name, &val); + err = efivar_get_str16(vendor, name, &val); if (err != EFI_SUCCESS) return err; @@ -229,7 +229,7 @@ void efivar_set_time_usec(const EFI_GUID *vendor, const char16_t *name, uint64_t return; _cleanup_free_ char16_t *str = xasprintf("%" PRIu64, usec); - efivar_set(vendor, name, str, 0); + efivar_set_str16(vendor, name, str, 0); } uint64_t get_os_indications_supported(void) { diff --git a/src/boot/efi/efivars.h b/src/boot/efi/efivars.h index f07f6b50780..9e9c42b6dc8 100644 --- a/src/boot/efi/efivars.h +++ b/src/boot/efi/efivars.h @@ -11,7 +11,7 @@ #define LOADER_GUID \ { 0x4a67b082, 0x0a4c, 0x41cf, { 0xb6, 0xc7, 0x44, 0x0b, 0x29, 0xbb, 0x8c, 0x4f } } -EFI_STATUS efivar_set(const EFI_GUID *vendor, const char16_t *name, const char16_t *value, uint32_t flags); +EFI_STATUS efivar_set_str16(const EFI_GUID *vendor, const char16_t *name, const char16_t *value, uint32_t flags); EFI_STATUS efivar_set_raw(const EFI_GUID *vendor, const char16_t *name, const void *buf, size_t size, uint32_t flags); EFI_STATUS efivar_set_uint_string(const EFI_GUID *vendor, const char16_t *name, size_t i, uint32_t flags); EFI_STATUS efivar_set_uint32_le(const EFI_GUID *vendor, const char16_t *name, uint32_t value, uint32_t flags); @@ -20,7 +20,7 @@ void efivar_set_time_usec(const EFI_GUID *vendor, const char16_t *name, uint64_t EFI_STATUS efivar_unset(const EFI_GUID *vendor, const char16_t *name, uint32_t flags); -EFI_STATUS efivar_get(const EFI_GUID *vendor, const char16_t *name, char16_t **ret); +EFI_STATUS efivar_get_str16(const EFI_GUID *vendor, const char16_t *name, char16_t **ret); EFI_STATUS efivar_get_raw(const EFI_GUID *vendor, const char16_t *name, void **ret, size_t *ret_size); EFI_STATUS efivar_get_uint_string(const EFI_GUID *vendor, const char16_t *name, size_t *ret); EFI_STATUS efivar_get_uint32_le(const EFI_GUID *vendor, const char16_t *name, uint32_t *ret); diff --git a/src/boot/efi/export-vars.c b/src/boot/efi/export-vars.c index ee41c5ccc3a..3f59922a7e5 100644 --- a/src/boot/efi/export-vars.c +++ b/src/boot/efi/export-vars.c @@ -13,7 +13,7 @@ void export_common_variables(EFI_LOADED_IMAGE_PROTOCOL *loaded_image) { if (efivar_get_raw(MAKE_GUID_PTR(LOADER), u"LoaderDevicePartUUID", NULL, NULL) != EFI_SUCCESS) { _cleanup_free_ char16_t *uuid = disk_get_part_uuid(loaded_image->DeviceHandle); if (uuid) - efivar_set(MAKE_GUID_PTR(LOADER), u"LoaderDevicePartUUID", uuid, 0); + efivar_set_str16(MAKE_GUID_PTR(LOADER), u"LoaderDevicePartUUID", uuid, 0); } /* If LoaderImageIdentifier is not set, assume the image with this stub was loaded directly from the @@ -26,20 +26,20 @@ void export_common_variables(EFI_LOADED_IMAGE_PROTOCOL *loaded_image) { loaded_image->FilePath) { _cleanup_free_ char16_t *s = NULL; if (device_path_to_str(loaded_image->FilePath, &s) == EFI_SUCCESS) - efivar_set(MAKE_GUID_PTR(LOADER), u"LoaderImageIdentifier", s, 0); + efivar_set_str16(MAKE_GUID_PTR(LOADER), u"LoaderImageIdentifier", s, 0); } /* if LoaderFirmwareInfo is not set, let's set it */ if (efivar_get_raw(MAKE_GUID_PTR(LOADER), u"LoaderFirmwareInfo", NULL, NULL) != EFI_SUCCESS) { _cleanup_free_ char16_t *s = NULL; s = xasprintf("%ls %u.%02u", ST->FirmwareVendor, ST->FirmwareRevision >> 16, ST->FirmwareRevision & 0xffff); - efivar_set(MAKE_GUID_PTR(LOADER), u"LoaderFirmwareInfo", s, 0); + efivar_set_str16(MAKE_GUID_PTR(LOADER), u"LoaderFirmwareInfo", s, 0); } /* ditto for LoaderFirmwareType */ if (efivar_get_raw(MAKE_GUID_PTR(LOADER), u"LoaderFirmwareType", NULL, NULL) != EFI_SUCCESS) { _cleanup_free_ char16_t *s = NULL; s = xasprintf("UEFI %u.%02u", ST->Hdr.Revision >> 16, ST->Hdr.Revision & 0xffff); - efivar_set(MAKE_GUID_PTR(LOADER), u"LoaderFirmwareType", s, 0); + efivar_set_str16(MAKE_GUID_PTR(LOADER), u"LoaderFirmwareType", s, 0); } } diff --git a/src/boot/efi/stub.c b/src/boot/efi/stub.c index bc3e349045a..5a274ef6294 100644 --- a/src/boot/efi/stub.c +++ b/src/boot/efi/stub.c @@ -157,7 +157,7 @@ static void export_stub_variables(EFI_LOADED_IMAGE_PROTOCOL *loaded_image) { /* add StubInfo (this is one is owned by the stub, hence we unconditionally override this with our * own data) */ - (void) efivar_set(MAKE_GUID_PTR(LOADER), u"StubInfo", u"systemd-stub " GIT_VERSION, 0); + (void) efivar_set_str16(MAKE_GUID_PTR(LOADER), u"StubInfo", u"systemd-stub " GIT_VERSION, 0); (void) efivar_set_uint64_le(MAKE_GUID_PTR(LOADER), u"StubFeatures", stub_features, 0); } -- 2.47.3