LIBEFIVAR(3)

NAME
libefivar - EFI Non Volatile Variable Support

LIBRARY
libefivar

SYNOPSIS
#include <efivar.h>
int
efi_append_variable(efi_guid_t guid, const char *name, uint8_t *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, uint8_t **data, size_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, uint8_t *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);

DESCRIPTION
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()

SEE ALSO
efidev(4), efidp(8), efivar(8)

HISTORY
The libefivar library first appeared in FreeBSD 12.0.

AUTHORS
-nosplit This software was originally written by Warner Losh.

BUGS
No facilities exist to process the strings as native UTF. This is a limitation in the Linux libefivar library interface.