]> git.ipfire.org Git - thirdparty/systemd.git/blame - src/shared/efivars.h
sd-boot: add EFI boot manager and stub loader
[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
24#include <sys/types.h>
25#include <inttypes.h>
f4ce2b3e 26#include <stdbool.h>
2e3d0692
LP
27
28#include "sd-id128.h"
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)
33
9cde64ff 34bool is_efi_boot(void);
bc6f2e7c
KS
35int is_efi_secure_boot(void);
36int is_efi_secure_boot_setup_mode(void);
34e5a31e 37
2e3d0692 38int efi_get_variable(sd_id128_t vendor, const char *name, uint32_t *attribute, void **value, size_t *size);
9cde64ff 39int efi_get_variable_string(sd_id128_t vendor, const char *name, char **p);
7b4d7cc0 40
9cde64ff
LP
41int efi_get_boot_option(uint16_t nr, char **title, sd_id128_t *partuuid, char **path);
42int efi_get_boot_order(uint16_t **order);
43int efi_get_boot_options(uint16_t **options);
34e5a31e 44
c51d84dc
KS
45int efi_loader_get_device_part_uuid(sd_id128_t *u);
46int efi_loader_get_boot_usec(usec_t *firmware, usec_t *loader);