X-Git-Url: http://git.ozlabs.org/?a=blobdiff_plain;f=lib%2Fefi%2Fefivar.h;h=9307d6c1761156cc802f0f8692744e5592d17c46;hb=9e869ebe3a5127575105d82c4d289d95cbed2db9;hp=0d4410000e6402d61af6163ebfc63d2e29223283;hpb=c3dfc9b7b91045172d460651c0309b09b0ab121a;p=petitboot diff --git a/lib/efi/efivar.h b/lib/efi/efivar.h index 0d44100..9307d6c 100644 --- a/lib/efi/efivar.h +++ b/lib/efi/efivar.h @@ -19,7 +19,7 @@ #ifndef EFIVAR_H #define EFIVAR_H -#include +#include #include #define EFI_VARIABLE_NON_VOLATILE 0x00000001 @@ -30,9 +30,11 @@ #define EFI_VARIABLE_TIME_BASED_AUTHENTICATED_WRITE_ACCESS 0x00000020 #define EFI_VARIABLE_APPEND_WRITE 0x00000040 -#ifndef EFIVARFS_MAGIC -#define EFIVARFS_MAGIC 0xde5e81e4 -#endif +#define EFI_DEFALT_ATTRIBUTES ( \ + EFI_VARIABLE_NON_VOLATILE | \ + EFI_VARIABLE_RUNTIME_ACCESS | \ + EFI_VARIABLE_BOOTSERVICE_ACCESS \ +) struct efi_data { uint32_t attributes; @@ -41,13 +43,23 @@ struct efi_data { uint8_t fill[0]; }; -void set_efivarfs_path(const char *path); -const char *get_efivarfs_path(void); +struct efi_mount { + const char *path; + const char *guid; +}; + +void efi_init_mount(struct efi_mount *efi_mount, const char *path, + const char *guid); +bool efi_check_mount_magic(const struct efi_mount *efi_mount, bool check_magic); +static inline bool efi_check_mount(const struct efi_mount *efi_mount) +{ + return efi_check_mount_magic(efi_mount, true); +} -int efi_get_variable(void *ctx, const char *guidstr, const char *name, - struct efi_data **efi_data); -int efi_set_variable(const char *guidstr, const char *name, - const struct efi_data *efi_data); -int efi_del_variable(const char *guidstr, const char *name); +int efi_get_variable(void *ctx, const struct efi_mount *efi_mount, + const char *name, struct efi_data **efi_data); +int efi_set_variable(const struct efi_mount *efi_mount, const char *name, + const struct efi_data *efi_data); +int efi_del_variable(const struct efi_mount *efi_mount, const char *name); #endif /* EFIVAR_H */