chiark / gitweb /
efi: unify BootXXXX reading
[elogind.git] / src / boot / boot.h
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 Kay Sievers
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 "sd-id128.h"
25
26 /*
27  * Firmware and boot manager information to be filled in
28  * by the platform.
29  *
30  * This is partly EFI specific, if you add things, keep this
31  * as generic as possible to be able to re-use it on other
32  * platforms.
33  */
34
35 struct boot_info_entry {
36         uint16_t id;
37         uint16_t order;
38         char *title;
39         sd_id128_t part_uuid;
40         char *path;
41 };
42
43 struct boot_info {
44         sd_id128_t machine_id;
45         sd_id128_t boot_id;
46         char *fw_type;
47         char *fw_info;
48         struct boot_info_entry *fw_entries;
49         size_t fw_entries_count;
50         uint16_t *fw_entries_order;
51         size_t fw_entries_order_count;
52         ssize_t fw_entry_active;
53         char *loader;
54         char *loader_image_path;
55         sd_id128_t loader_part_uuid;
56         struct boot_info_entry *loader_entries;
57         size_t loader_entries_count;
58         ssize_t loader_entry_active;
59         char *loader_options_added;
60 };
61
62 int boot_info_query(struct boot_info *info);