efivars.h revision 9cde64ff264c432fc83be638e57d8fd6392793a6
2e3d069236777cd62f755a02f4a239306b4ad21aLennart Poettering/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/
2e3d069236777cd62f755a02f4a239306b4ad21aLennart Poettering
2e3d069236777cd62f755a02f4a239306b4ad21aLennart Poettering#pragma once
2e3d069236777cd62f755a02f4a239306b4ad21aLennart Poettering
2e3d069236777cd62f755a02f4a239306b4ad21aLennart Poettering/***
2e3d069236777cd62f755a02f4a239306b4ad21aLennart Poettering This file is part of systemd.
2e3d069236777cd62f755a02f4a239306b4ad21aLennart Poettering
2e3d069236777cd62f755a02f4a239306b4ad21aLennart Poettering Copyright 2013 Lennart Poettering
2e3d069236777cd62f755a02f4a239306b4ad21aLennart Poettering
2e3d069236777cd62f755a02f4a239306b4ad21aLennart Poettering systemd is free software; you can redistribute it and/or modify it
2e3d069236777cd62f755a02f4a239306b4ad21aLennart Poettering under the terms of the GNU Lesser General Public License as published by
2e3d069236777cd62f755a02f4a239306b4ad21aLennart Poettering the Free Software Foundation; either version 2.1 of the License, or
2e3d069236777cd62f755a02f4a239306b4ad21aLennart Poettering (at your option) any later version.
2e3d069236777cd62f755a02f4a239306b4ad21aLennart Poettering
2e3d069236777cd62f755a02f4a239306b4ad21aLennart Poettering systemd is distributed in the hope that it will be useful, but
2e3d069236777cd62f755a02f4a239306b4ad21aLennart Poettering WITHOUT ANY WARRANTY; without even the implied warranty of
2e3d069236777cd62f755a02f4a239306b4ad21aLennart Poettering MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
2e3d069236777cd62f755a02f4a239306b4ad21aLennart Poettering Lesser General Public License for more details.
2e3d069236777cd62f755a02f4a239306b4ad21aLennart Poettering
2e3d069236777cd62f755a02f4a239306b4ad21aLennart Poettering You should have received a copy of the GNU Lesser General Public License
2e3d069236777cd62f755a02f4a239306b4ad21aLennart Poettering along with systemd; If not, see <http://www.gnu.org/licenses/>.
2e3d069236777cd62f755a02f4a239306b4ad21aLennart Poettering***/
2e3d069236777cd62f755a02f4a239306b4ad21aLennart Poettering
2e3d069236777cd62f755a02f4a239306b4ad21aLennart Poettering#include <sys/types.h>
2e3d069236777cd62f755a02f4a239306b4ad21aLennart Poettering#include <inttypes.h>
f4ce2b3e5ce93b83f14f8785e205ebb5a9b8c1dfLennart Poettering#include <stdbool.h>
2e3d069236777cd62f755a02f4a239306b4ad21aLennart Poettering
2e3d069236777cd62f755a02f4a239306b4ad21aLennart Poettering#include "sd-id128.h"
f4ce2b3e5ce93b83f14f8785e205ebb5a9b8c1dfLennart Poettering#include "time-util.h"
2e3d069236777cd62f755a02f4a239306b4ad21aLennart Poettering
7b4d7cc08283e5485dcfa49ffdf1915de1d5e81bKay Sievers#define EFI_VENDOR_LOADER SD_ID128_MAKE(4a,67,b0,82,0a,4c,41,cf,b6,c7,44,0b,29,bb,8c,4f)
7b4d7cc08283e5485dcfa49ffdf1915de1d5e81bKay Sievers#define EFI_VENDOR_GLOBAL SD_ID128_MAKE(8b,e4,df,61,93,ca,11,d2,aa,0d,00,e0,98,03,2b,8c)
7b4d7cc08283e5485dcfa49ffdf1915de1d5e81bKay Sievers
9cde64ff264c432fc83be638e57d8fd6392793a6Lennart Poetteringbool is_efi_boot(void);
34e5a31ec5897de8ba1436dad53df99637569d0aLennart Poettering
2e3d069236777cd62f755a02f4a239306b4ad21aLennart Poetteringint efi_get_variable(sd_id128_t vendor, const char *name, uint32_t *attribute, void **value, size_t *size);
9cde64ff264c432fc83be638e57d8fd6392793a6Lennart Poetteringint efi_get_variable_string(sd_id128_t vendor, const char *name, char **p);
7b4d7cc08283e5485dcfa49ffdf1915de1d5e81bKay Sievers
9cde64ff264c432fc83be638e57d8fd6392793a6Lennart Poetteringint efi_get_boot_option(uint16_t nr, char **title, sd_id128_t *partuuid, char **path);
9cde64ff264c432fc83be638e57d8fd6392793a6Lennart Poetteringint efi_get_boot_order(uint16_t **order);
9cde64ff264c432fc83be638e57d8fd6392793a6Lennart Poetteringint efi_get_boot_options(uint16_t **options);
34e5a31ec5897de8ba1436dad53df99637569d0aLennart Poettering
2e3d069236777cd62f755a02f4a239306b4ad21aLennart Poetteringint efi_get_boot_timestamps(const dual_timestamp *n, dual_timestamp *firmware, dual_timestamp *loader);
f4ce2b3e5ce93b83f14f8785e205ebb5a9b8c1dfLennart Poettering
f4ce2b3e5ce93b83f14f8785e205ebb5a9b8c1dfLennart Poetteringint efi_get_loader_device_part_uuid(sd_id128_t *u);