]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
efivars: change return parameter of efivar_get_raw() to be void**
authorLennart Poettering <lennart@poettering.net>
Tue, 2 Jul 2024 15:49:52 +0000 (17:49 +0200)
committerLennart Poettering <lennart@poettering.net>
Tue, 2 Jul 2024 16:15:27 +0000 (18:15 +0200)
This is the "raw", untyped version after all, hence we should return a
void pointer, and let the client cast, if they know more.

Replaces: #30812

src/boot/efi/boot.c
src/boot/efi/efivars.c
src/boot/efi/efivars.h
src/boot/efi/random-seed.c
src/boot/efi/vmm.c

index b643c2592525d195b33e8df70daeca6118a8c862..e191d852117cdd32a601478008d8330a768b2d4c 100644 (file)
@@ -2015,7 +2015,7 @@ static EFI_STATUS boot_windows_bitlocker(void) {
 
         /* There can be gaps in Boot#### entries. Instead of iterating over the full
          * EFI var list or uint16_t namespace, just look for "Windows Boot Manager" in BootOrder. */
-        err = efivar_get_raw(MAKE_GUID_PTR(EFI_GLOBAL_VARIABLE), u"BootOrder", (char **) &boot_order, &boot_order_size);
+        err = efivar_get_raw(MAKE_GUID_PTR(EFI_GLOBAL_VARIABLE), u"BootOrder", (void**) &boot_order, &boot_order_size);
         if (err != EFI_SUCCESS || boot_order_size % sizeof(uint16_t) != 0)
                 return err;
 
@@ -2024,7 +2024,7 @@ static EFI_STATUS boot_windows_bitlocker(void) {
                 size_t buf_size;
 
                 _cleanup_free_ char16_t *name = xasprintf("Boot%04x", boot_order[i]);
-                err = efivar_get_raw(MAKE_GUID_PTR(EFI_GLOBAL_VARIABLE), name, &buf, &buf_size);
+                err = efivar_get_raw(MAKE_GUID_PTR(EFI_GLOBAL_VARIABLE), name, (void**) &buf, &buf_size);
                 if (err != EFI_SUCCESS)
                         continue;
 
index 5cf348c3cb26a3924888170fda184de07cdc09a2..500cba36ba612435b6dc70778b07082cbe1961df 100644 (file)
@@ -85,7 +85,7 @@ EFI_STATUS efivar_get(const EFI_GUID *vendor, const char16_t *name, char16_t **r
         assert(vendor);
         assert(name);
 
-        err = efivar_get_raw(vendor, name, (char **) &buf, &size);
+        err = efivar_get_raw(vendor, name, (void**) &buf, &size);
         if (err != EFI_SUCCESS)
                 return err;
 
@@ -140,7 +140,7 @@ EFI_STATUS efivar_get_uint32_le(const EFI_GUID *vendor, const char16_t *name, ui
         assert(vendor);
         assert(name);
 
-        err = efivar_get_raw(vendor, name, &buf, &size);
+        err = efivar_get_raw(vendor, name, (void**) &buf, &size);
         if (err != EFI_SUCCESS)
                 return err;
 
@@ -162,7 +162,7 @@ EFI_STATUS efivar_get_uint64_le(const EFI_GUID *vendor, const char16_t *name, ui
         assert(vendor);
         assert(name);
 
-        err = efivar_get_raw(vendor, name, &buf, &size);
+        err = efivar_get_raw(vendor, name, (void**) &buf, &size);
         if (err != EFI_SUCCESS)
                 return err;
 
@@ -177,7 +177,7 @@ EFI_STATUS efivar_get_uint64_le(const EFI_GUID *vendor, const char16_t *name, ui
         return EFI_SUCCESS;
 }
 
-EFI_STATUS efivar_get_raw(const EFI_GUID *vendor, const char16_t *name, char **ret, size_t *ret_size) {
+EFI_STATUS efivar_get_raw(const EFI_GUID *vendor, const char16_t *name, void **ret, size_t *ret_size) {
         EFI_STATUS err;
 
         assert(vendor);
@@ -209,7 +209,7 @@ EFI_STATUS efivar_get_boolean_u8(const EFI_GUID *vendor, const char16_t *name, b
         assert(vendor);
         assert(name);
 
-        err = efivar_get_raw(vendor, name, &b, &size);
+        err = efivar_get_raw(vendor, name, (void**) &b, &size);
         if (err != EFI_SUCCESS)
                 return err;
 
index 32cb5496b8435bbacffb6105dc52b5f0545a65cf..f07f6b507808a36b20cc7d5ff93e656b0b2d6301 100644 (file)
@@ -21,7 +21,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_raw(const EFI_GUID *vendor, const char16_t *name, char **ret, size_t *ret_size);
+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);
 EFI_STATUS efivar_get_uint64_le(const EFI_GUID *vendor, const char16_t *name, uint64_t *ret);
index e5bad11962e9b6f621e13120f75c578fd59977ad..0ce16615c16926a255aedddae5320131e00926b8 100644 (file)
@@ -56,7 +56,7 @@ static EFI_STATUS acquire_system_token(void **ret, size_t *ret_size) {
         assert(ret);
         assert(ret_size);
 
-        err = efivar_get_raw(MAKE_GUID_PTR(LOADER), u"LoaderSystemToken", &data, &size);
+        err = efivar_get_raw(MAKE_GUID_PTR(LOADER), u"LoaderSystemToken", (void**) &data, &size);
         if (err != EFI_SUCCESS) {
                 if (err != EFI_NOT_FOUND)
                         log_error_status(err, "Failed to read LoaderSystemToken EFI variable: %m");
index e7fce0763e0f6af75e29da1f48beaf8fda3c1c79..0f268a1512b1bbccf3b0729c31d79dc10237921f 100644 (file)
@@ -81,7 +81,7 @@ EFI_STATUS vmm_open(EFI_HANDLE *ret_vmm_dev, EFI_FILE **ret_vmm_dir) {
                 _cleanup_free_ EFI_DEVICE_PATH *dp = NULL;
 
                 _cleanup_free_ char16_t *order_str = xasprintf("VMMBootOrder%04zx", order);
-                dp_err = efivar_get_raw(MAKE_GUID_PTR(VMM_BOOT_ORDER), order_str, (char **) &dp, NULL);
+                dp_err = efivar_get_raw(MAKE_GUID_PTR(VMM_BOOT_ORDER), order_str, (void**) &dp, NULL);
 
                 for (size_t i = 0; i < n_handles; i++) {
                         _cleanup_(file_closep) EFI_FILE *root_dir = NULL, *efi_dir = NULL;