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