libefivar
—
EFI Non Volatile Variable Support
#include <efivar.h>
int
efi_append_variable
(efi_guid_t
guid, const char
*name, void *data,
size_t data_size,
uint32_t attributes);
int
efi_del_variable
(efi_guid_t
guid, const char
*name);
int
efi_get_variable
(efi_guid_t
guid, const char
*name, void **data,
ssize_t *data_size,
uint32_t
*attributes);
int
efi_get_variable_attributes
(efi_guid_t
guid, const char
*name, uint32_t
*attributes);
int
efi_get_variable_size
(efi_guid_t
guid, const char
*name, size_t
*size);
int
efi_get_next_variable_name
(efi_guid_t
**guid, char
**name);
int
efi_guid_to_name
(efi_guid_t
*guid, char
**name);
int
efi_guid_to_symbol
(efi_guid_t
*guid, char
**symbol);
int
efi_guid_to_str
(const
efi_guid_t *guid, char
**sp);
int
efi_name_to_guid
(const
char *name, efi_guid_t
*guid);
int
efi_set_variable
(efi_guid_t
guid, const char
*name, void *data,
size_t data_size,
uint32_t attributes);
int
efi_str_to_guid
(const
char *s, efi_guid_t
*guid);
int
efi_variables_supported
(void);
The libefivar
library implements access to EFI Variables
via the EFI Runtime Services. All char * strings are
converted to 16-bit UTF strings before passing them to EFI.
efi_variables_supported
() returns non-zero
if the current machine supports setting of EFI firmware variables and the
kernel support for doing so is present. Otherwise zero is returned.
efi_del_variable
() deletes the EFI
variable selected by guid and
name.
The following functions have not been implemented yet:
efi_append_variable
()
efi_get_next_variable_name
()
efi_get_variable
()
efi_get_variable_attributes
()
efi_get_variable_size
()
efi_guid_to_name
()
efi_guid_to_str
()
efi_guid_to_symbol
()
efi_name_to_guid
()
efi_set_variable
()
efi_str_to_guid
()
The libefivar
library first appeared in
FreeBSD 12.0.
This software was originally written by Warner Losh.
No facilities exist to process the strings as native UTF. This is a limitation
in the Linux libefivar
library interface.