]> git.ipfire.org Git - thirdparty/systemd.git/blame - src/shared/efivars.h
Add SPDX license identifiers to source files under the LGPL
[thirdparty/systemd.git] / src / shared / efivars.h
CommitLineData
53e1b683 1/* SPDX-License-Identifier: LGPL-2.1+ */
2e3d0692
LP
2#pragma once
3
4/***
5 This file is part of systemd.
6
7 Copyright 2013 Lennart Poettering
8
9 systemd is free software; you can redistribute it and/or modify it
10 under the terms of the GNU Lesser General Public License as published by
11 the Free Software Foundation; either version 2.1 of the License, or
12 (at your option) any later version.
13
14 systemd is distributed in the hope that it will be useful, but
15 WITHOUT ANY WARRANTY; without even the implied warranty of
16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17 Lesser General Public License for more details.
18
19 You should have received a copy of the GNU Lesser General Public License
20 along with systemd; If not, see <http://www.gnu.org/licenses/>.
21***/
22
f4ce2b3e 23#include <stdbool.h>
a8fbdf54
TA
24#include <stddef.h>
25#include <stdint.h>
2e3d0692
LP
26
27#include "sd-id128.h"
71d35b6b 28
f4ce2b3e 29#include "time-util.h"
2e3d0692 30
7b4d7cc0
KS
31#define EFI_VENDOR_LOADER SD_ID128_MAKE(4a,67,b0,82,0a,4c,41,cf,b6,c7,44,0b,29,bb,8c,4f)
32#define EFI_VENDOR_GLOBAL SD_ID128_MAKE(8b,e4,df,61,93,ca,11,d2,aa,0d,00,e0,98,03,2b,8c)
0974a682
KS
33#define EFI_VARIABLE_NON_VOLATILE 0x0000000000000001
34#define EFI_VARIABLE_BOOTSERVICE_ACCESS 0x0000000000000002
35#define EFI_VARIABLE_RUNTIME_ACCESS 0x0000000000000004
7b4d7cc0 36
349cc4a5 37#if ENABLE_EFI
b28ce7c6 38
9cde64ff 39bool is_efi_boot(void);
9df49b33
TG
40bool is_efi_secure_boot(void);
41bool is_efi_secure_boot_setup_mode(void);
5bdf2243
JJ
42int efi_reboot_to_firmware_supported(void);
43int efi_get_reboot_to_firmware(void);
44int efi_set_reboot_to_firmware(bool value);
34e5a31e 45
2e3d0692 46int efi_get_variable(sd_id128_t vendor, const char *name, uint32_t *attribute, void **value, size_t *size);
0974a682 47int efi_set_variable(sd_id128_t vendor, const char *name, const void *value, size_t size);
9cde64ff 48int efi_get_variable_string(sd_id128_t vendor, const char *name, char **p);
7b4d7cc0 49
0974a682
KS
50int efi_get_boot_option(uint16_t nr, char **title, sd_id128_t *part_uuid, char **path, bool *active);
51int 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);
52int efi_remove_boot_option(uint16_t id);
9cde64ff 53int efi_get_boot_order(uint16_t **order);
0974a682 54int efi_set_boot_order(uint16_t *order, size_t n);
9cde64ff 55int efi_get_boot_options(uint16_t **options);
34e5a31e 56
c51d84dc
KS
57int efi_loader_get_device_part_uuid(sd_id128_t *u);
58int efi_loader_get_boot_usec(usec_t *firmware, usec_t *loader);
0974a682 59
b28ce7c6
TG
60#else
61
62static inline bool is_efi_boot(void) {
63 return false;
64}
65
66static inline bool is_efi_secure_boot(void) {
67 return false;
68}
69
70static inline bool is_efi_secure_boot_setup_mode(void) {
71 return false;
72}
73
74static inline int efi_reboot_to_firmware_supported(void) {
75 return -EOPNOTSUPP;
76}
77
78static inline int efi_get_reboot_to_firmware(void) {
79 return -EOPNOTSUPP;
80}
81
82static inline int efi_set_reboot_to_firmware(bool value) {
83 return -EOPNOTSUPP;
84}
85
86static inline int efi_get_variable(sd_id128_t vendor, const char *name, uint32_t *attribute, void **value, size_t *size) {
87 return -EOPNOTSUPP;
88}
89
90static inline int efi_set_variable(sd_id128_t vendor, const char *name, const void *value, size_t size) {
91 return -EOPNOTSUPP;
92}
93
94static inline int efi_get_variable_string(sd_id128_t vendor, const char *name, char **p) {
95 return -EOPNOTSUPP;
96}
97
98static inline int efi_get_boot_option(uint16_t nr, char **title, sd_id128_t *part_uuid, char **path, bool *active) {
99 return -EOPNOTSUPP;
100}
101
102static 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) {
103 return -EOPNOTSUPP;
104}
105
106static inline int efi_remove_boot_option(uint16_t id) {
107 return -EOPNOTSUPP;
108}
109
110static inline int efi_get_boot_order(uint16_t **order) {
111 return -EOPNOTSUPP;
112}
113
114static inline int efi_set_boot_order(uint16_t *order, size_t n) {
115 return -EOPNOTSUPP;
116}
117
118static inline int efi_get_boot_options(uint16_t **options) {
119 return -EOPNOTSUPP;
120}
121
122static inline int efi_loader_get_device_part_uuid(sd_id128_t *u) {
123 return -EOPNOTSUPP;
124}
125
126static inline int efi_loader_get_boot_usec(usec_t *firmware, usec_t *loader) {
127 return -EOPNOTSUPP;
128}
129
130#endif
131
0974a682 132char *efi_tilt_backslashes(char *s);