mirror of
https://git.savannah.gnu.org/git/grub.git
synced 2026-10-21 06:49:35 +00:00
efi: Add grub_efi_set_variable_with_attributes()
Add a function to the EFI module that allows setting EFI variables with specific attributes. This is useful for marking variables as volatile, for example. Signed-off-by: Oliver Steffen <osteffen@redhat.com> Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
This commit is contained in:
1 parent
6f05a27796
commit
7e4da6fb2d
2 files changed
+19
-7
No files matched your search
@@ -203,8 +203,8 @@ grub_efi_set_virtual_address_map (grub_efi_uintn_t memory_map_size,
|
||||
}
|
||||
|
||||
grub_err_t
|
||||
grub_efi_set_variable(const char *var, const grub_efi_guid_t *guid,
|
||||
void *data, grub_size_t datasize)
|
||||
grub_efi_set_variable_with_attributes (const char *var, const grub_efi_guid_t *guid,
|
||||
void *data, grub_size_t datasize, grub_efi_uint32_t attributes)
|
||||
{
|
||||
grub_efi_status_t status;
|
||||
grub_efi_runtime_services_t *r;
|
||||
@@ -221,11 +221,7 @@ grub_efi_set_variable(const char *var, const grub_efi_guid_t *guid,
|
||||
|
||||
r = grub_efi_system_table->runtime_services;
|
||||
|
||||
status = r->set_variable (var16, guid,
|
||||
(GRUB_EFI_VARIABLE_NON_VOLATILE
|
||||
| GRUB_EFI_VARIABLE_BOOTSERVICE_ACCESS
|
||||
| GRUB_EFI_VARIABLE_RUNTIME_ACCESS),
|
||||
datasize, data);
|
||||
status = r->set_variable (var16, guid, attributes, datasize, data);
|
||||
grub_free (var16);
|
||||
if (status == GRUB_EFI_SUCCESS)
|
||||
return GRUB_ERR_NONE;
|
||||
@@ -233,6 +229,16 @@ grub_efi_set_variable(const char *var, const grub_efi_guid_t *guid,
|
||||
return grub_error (GRUB_ERR_IO, "could not set EFI variable `%s'", var);
|
||||
}
|
||||
|
||||
grub_err_t
|
||||
grub_efi_set_variable (const char *var, const grub_efi_guid_t *guid,
|
||||
void *data, grub_size_t datasize)
|
||||
{
|
||||
return grub_efi_set_variable_with_attributes (var, guid, data, datasize,
|
||||
GRUB_EFI_VARIABLE_NON_VOLATILE
|
||||
| GRUB_EFI_VARIABLE_BOOTSERVICE_ACCESS
|
||||
| GRUB_EFI_VARIABLE_RUNTIME_ACCESS);
|
||||
}
|
||||
|
||||
grub_efi_status_t
|
||||
grub_efi_get_variable_with_attributes (const char *var,
|
||||
const grub_efi_guid_t *guid,
|
||||
|
||||
Reference in new issue
Block a user