Reference

efi_append_variable(3)

EFI Non Volatile Variable Support

NAME

libefivar – EFI Non Volatile Variable Support

SYNOPSIS

#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);

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)

HISTORY

The libefivar library first appeared in FreeBSD 12.0.

AUTHORS

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.

History