efi_loader: all variable attributes are 32bit

GetVariable() and SetVariable() use an uint32_t value for attributes.
The UEFI specification defines the related constants as 32bit.

Add the missing EFI_VARIABLE_ENHANCED_AUTHENTICATED_ACCESS constant.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
This commit is contained in:
Heinrich Schuchardt 2024-04-03 17:33:33 +02:00
parent 584a2ada6e
commit 19327c1f90
3 changed files with 11 additions and 10 deletions

View file

@ -492,13 +492,14 @@ extern char _binary_u_boot_bin_start[], _binary_u_boot_bin_end[];
/* /*
* Variable Attributes * Variable Attributes
*/ */
#define EFI_VARIABLE_NON_VOLATILE 0x0000000000000001 #define EFI_VARIABLE_NON_VOLATILE 0x00000001
#define EFI_VARIABLE_BOOTSERVICE_ACCESS 0x0000000000000002 #define EFI_VARIABLE_BOOTSERVICE_ACCESS 0x00000002
#define EFI_VARIABLE_RUNTIME_ACCESS 0x0000000000000004 #define EFI_VARIABLE_RUNTIME_ACCESS 0x00000004
#define EFI_VARIABLE_HARDWARE_ERROR_RECORD 0x0000000000000008 #define EFI_VARIABLE_HARDWARE_ERROR_RECORD 0x00000008
#define EFI_VARIABLE_AUTHENTICATED_WRITE_ACCESS 0x0000000000000010 #define EFI_VARIABLE_AUTHENTICATED_WRITE_ACCESS 0x00000010
#define EFI_VARIABLE_TIME_BASED_AUTHENTICATED_WRITE_ACCESS 0x0000000000000020 #define EFI_VARIABLE_TIME_BASED_AUTHENTICATED_WRITE_ACCESS 0x00000020
#define EFI_VARIABLE_APPEND_WRITE 0x0000000000000040 #define EFI_VARIABLE_APPEND_WRITE 0x00000040
#define EFI_VARIABLE_ENHANCED_AUTHENTICATED_ACCESS 0x00000080
#define EFI_VARIABLE_MASK (EFI_VARIABLE_NON_VOLATILE | \ #define EFI_VARIABLE_MASK (EFI_VARIABLE_NON_VOLATILE | \
EFI_VARIABLE_BOOTSERVICE_ACCESS | \ EFI_VARIABLE_BOOTSERVICE_ACCESS | \

View file

@ -99,7 +99,7 @@ efi_status_t EFIAPI efi_set_variable(u16 *variable_name,
data_size, data); data_size, data);
/* Make sure that the EFI_VARIABLE_READ_ONLY flag is not set */ /* Make sure that the EFI_VARIABLE_READ_ONLY flag is not set */
if (attributes & ~(u32)EFI_VARIABLE_MASK) if (attributes & ~EFI_VARIABLE_MASK)
ret = EFI_INVALID_PARAMETER; ret = EFI_INVALID_PARAMETER;
else else
ret = efi_set_variable_int(variable_name, vendor, attributes, ret = efi_set_variable_int(variable_name, vendor, attributes,

View file

@ -259,7 +259,7 @@ efi_status_t efi_set_variable_int(const u16 *variable_name,
/* check if a variable exists */ /* check if a variable exists */
var = efi_var_mem_find(vendor, variable_name, NULL); var = efi_var_mem_find(vendor, variable_name, NULL);
append = !!(attributes & EFI_VARIABLE_APPEND_WRITE); append = !!(attributes & EFI_VARIABLE_APPEND_WRITE);
attributes &= ~(u32)EFI_VARIABLE_APPEND_WRITE; attributes &= ~EFI_VARIABLE_APPEND_WRITE;
delete = !append && (!data_size || !attributes); delete = !append && (!data_size || !attributes);
/* check attributes */ /* check attributes */
@ -398,7 +398,7 @@ efi_status_t efi_query_variable_info_int(u32 attributes,
EFI_VARIABLE_RUNTIME_ACCESS) EFI_VARIABLE_RUNTIME_ACCESS)
return EFI_INVALID_PARAMETER; return EFI_INVALID_PARAMETER;
if (attributes & ~(u32)EFI_VARIABLE_MASK) if (attributes & ~EFI_VARIABLE_MASK)
return EFI_INVALID_PARAMETER; return EFI_INVALID_PARAMETER;
*maximum_variable_storage_size = EFI_VAR_BUF_SIZE - *maximum_variable_storage_size = EFI_VAR_BUF_SIZE -