efivars.h revision a8fbdf5424be099ba1b2b1ec261c02b8759d6b0c
e9d21f240704f87c6bb5f7fca1c5e6d0f31c84cdLennart Poettering/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/
e9d21f240704f87c6bb5f7fca1c5e6d0f31c84cdLennart Poettering This file is part of systemd.
e9d21f240704f87c6bb5f7fca1c5e6d0f31c84cdLennart Poettering Copyright 2013 Lennart Poettering
e9d21f240704f87c6bb5f7fca1c5e6d0f31c84cdLennart Poettering systemd is free software; you can redistribute it and/or modify it
e9d21f240704f87c6bb5f7fca1c5e6d0f31c84cdLennart Poettering under the terms of the GNU Lesser General Public License as published by
e9d21f240704f87c6bb5f7fca1c5e6d0f31c84cdLennart Poettering the Free Software Foundation; either version 2.1 of the License, or
e9d21f240704f87c6bb5f7fca1c5e6d0f31c84cdLennart Poettering (at your option) any later version.
e9d21f240704f87c6bb5f7fca1c5e6d0f31c84cdLennart Poettering systemd is distributed in the hope that it will be useful, but
e9d21f240704f87c6bb5f7fca1c5e6d0f31c84cdLennart Poettering WITHOUT ANY WARRANTY; without even the implied warranty of
e9d21f240704f87c6bb5f7fca1c5e6d0f31c84cdLennart Poettering MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
e9d21f240704f87c6bb5f7fca1c5e6d0f31c84cdLennart Poettering Lesser General Public License for more details.
e9d21f240704f87c6bb5f7fca1c5e6d0f31c84cdLennart Poettering You should have received a copy of the GNU Lesser General Public License
e9d21f240704f87c6bb5f7fca1c5e6d0f31c84cdLennart Poettering along with systemd; If not, see <http://www.gnu.org/licenses/>.
e9d21f240704f87c6bb5f7fca1c5e6d0f31c84cdLennart Poettering#define EFI_VENDOR_LOADER SD_ID128_MAKE(4a,67,b0,82,0a,4c,41,cf,b6,c7,44,0b,29,bb,8c,4f)
e9d21f240704f87c6bb5f7fca1c5e6d0f31c84cdLennart Poettering#define EFI_VENDOR_GLOBAL SD_ID128_MAKE(8b,e4,df,61,93,ca,11,d2,aa,0d,00,e0,98,03,2b,8c)
cc3773810855956bad92337cee8fa193584ab62eLennart Poettering#define EFI_VARIABLE_NON_VOLATILE 0x0000000000000001
e9d21f240704f87c6bb5f7fca1c5e6d0f31c84cdLennart Poettering#define EFI_VARIABLE_BOOTSERVICE_ACCESS 0x0000000000000002
e9d21f240704f87c6bb5f7fca1c5e6d0f31c84cdLennart Poettering#define EFI_VARIABLE_RUNTIME_ACCESS 0x0000000000000004
e9d21f240704f87c6bb5f7fca1c5e6d0f31c84cdLennart Poetteringint efi_reboot_to_firmware_supported(void);
e9d21f240704f87c6bb5f7fca1c5e6d0f31c84cdLennart Poetteringint efi_set_reboot_to_firmware(bool value);
e9d21f240704f87c6bb5f7fca1c5e6d0f31c84cdLennart Poetteringint efi_get_variable(sd_id128_t vendor, const char *name, uint32_t *attribute, void **value, size_t *size);
e9d21f240704f87c6bb5f7fca1c5e6d0f31c84cdLennart Poetteringint efi_set_variable(sd_id128_t vendor, const char *name, const void *value, size_t size);
e9d21f240704f87c6bb5f7fca1c5e6d0f31c84cdLennart Poetteringint efi_get_variable_string(sd_id128_t vendor, const char *name, char **p);
e9d21f240704f87c6bb5f7fca1c5e6d0f31c84cdLennart Poetteringint efi_get_boot_option(uint16_t nr, char **title, sd_id128_t *part_uuid, char **path, bool *active);
e9d21f240704f87c6bb5f7fca1c5e6d0f31c84cdLennart Poetteringint efi_add_boot_option(uint16_t id, const char *title, uint32_t part, uint64_t pstart, uint64_t psize, sd_id128_t part_uuid, const char *path);
e9d21f240704f87c6bb5f7fca1c5e6d0f31c84cdLennart Poetteringint efi_set_boot_order(uint16_t *order, size_t n);
e9d21f240704f87c6bb5f7fca1c5e6d0f31c84cdLennart Poetteringint efi_get_boot_options(uint16_t **options);
e9d21f240704f87c6bb5f7fca1c5e6d0f31c84cdLennart Poetteringint efi_loader_get_device_part_uuid(sd_id128_t *u);
e9d21f240704f87c6bb5f7fca1c5e6d0f31c84cdLennart Poetteringint efi_loader_get_boot_usec(usec_t *firmware, usec_t *loader);
e9d21f240704f87c6bb5f7fca1c5e6d0f31c84cdLennart Poetteringstatic inline bool is_efi_boot(void) {
e9d21f240704f87c6bb5f7fca1c5e6d0f31c84cdLennart Poetteringstatic inline bool is_efi_secure_boot(void) {
c30a0c62fdbf6f11902be9db64ade99fb508adfdLennart Poetteringstatic inline bool is_efi_secure_boot_setup_mode(void) {
03e334a1c7dc8c20c38902aa039440763acc9b17Lennart Poetteringstatic inline int efi_reboot_to_firmware_supported(void) {
e9d21f240704f87c6bb5f7fca1c5e6d0f31c84cdLennart Poetteringstatic inline int efi_get_reboot_to_firmware(void) {
e9d21f240704f87c6bb5f7fca1c5e6d0f31c84cdLennart Poetteringstatic inline int efi_set_reboot_to_firmware(bool value) {
e9d21f240704f87c6bb5f7fca1c5e6d0f31c84cdLennart Poetteringstatic inline int efi_get_variable(sd_id128_t vendor, const char *name, uint32_t *attribute, void **value, size_t *size) {
e9d21f240704f87c6bb5f7fca1c5e6d0f31c84cdLennart Poetteringstatic inline int efi_set_variable(sd_id128_t vendor, const char *name, const void *value, size_t size) {
e9d21f240704f87c6bb5f7fca1c5e6d0f31c84cdLennart Poetteringstatic inline int efi_get_variable_string(sd_id128_t vendor, const char *name, char **p) {
e9d21f240704f87c6bb5f7fca1c5e6d0f31c84cdLennart Poetteringstatic inline int efi_get_boot_option(uint16_t nr, char **title, sd_id128_t *part_uuid, char **path, bool *active) {
3c56cab44150ad47323970cfadfb0257c6305a74Ben Wolsiefferstatic inline int efi_add_boot_option(uint16_t id, const char *title, uint32_t part, uint64_t pstart, uint64_t psize, sd_id128_t part_uuid, const char *path) {
3c56cab44150ad47323970cfadfb0257c6305a74Ben Wolsiefferstatic inline int efi_remove_boot_option(uint16_t id) {
3c56cab44150ad47323970cfadfb0257c6305a74Ben Wolsiefferstatic inline int efi_get_boot_order(uint16_t **order) {
ed4ba7e4f652150310d062ffbdfefb4521ce1054Lennart Poetteringstatic inline int efi_set_boot_order(uint16_t *order, size_t n) {
ed4ba7e4f652150310d062ffbdfefb4521ce1054Lennart Poetteringstatic inline int efi_get_boot_options(uint16_t **options) {
e9d21f240704f87c6bb5f7fca1c5e6d0f31c84cdLennart Poetteringstatic inline int efi_loader_get_device_part_uuid(sd_id128_t *u) {
e9d21f240704f87c6bb5f7fca1c5e6d0f31c84cdLennart Poetteringstatic inline int efi_loader_get_boot_usec(usec_t *firmware, usec_t *loader) {