Pip
Architecture-dependent parts of Pip: MAL, IAL and boot
x86_multiboot/boot/include/fpinfo.h
Go to the documentation of this file.
1 /*******************************************************************************/
2 /* © Université de Lille, The Pip Development Team (2015-2021) */
3 /* */
4 /* This software is a computer program whose purpose is to run a minimal, */
5 /* hypervisor relying on proven properties such as memory isolation. */
6 /* */
7 /* This software is governed by the CeCILL license under French law and */
8 /* abiding by the rules of distribution of free software. You can use, */
9 /* modify and/ or redistribute the software under the terms of the CeCILL */
10 /* license as circulated by CEA, CNRS and INRIA at the following URL */
11 /* "http://www.cecill.info". */
12 /* */
13 /* As a counterpart to the access to the source code and rights to copy, */
14 /* modify and redistribute granted by the license, users are provided only */
15 /* with a limited warranty and the software's author, the holder of the */
16 /* economic rights, and the successive licensors have only limited */
17 /* liability. */
18 /* */
19 /* In this respect, the user's attention is drawn to the risks associated */
20 /* with loading, using, modifying and/or developing or reproducing the */
21 /* software by the user in light of its specific status of free software, */
22 /* that may mean that it is complicated to manipulate, and that also */
23 /* therefore means that it is reserved for developers and experienced */
24 /* professionals having in-depth computer knowledge. Users are therefore */
25 /* encouraged to load and test the software's suitability as regards their */
26 /* requirements in conditions enabling the security of their systems and/or */
27 /* data to be ensured and, more generally, to use and operate it in the */
28 /* same conditions as regards security. */
29 /* */
30 /* The fact that you are presently reading this means that you have had */
31 /* knowledge of the CeCILL license and that you accept its terms. */
32 /*******************************************************************************/
33 
39 #ifndef __FPINFO__
40 #define __FPINFO__
41 
42 #define FPINFO_MAGIC 0xDEADCAFE
43 
49 
54 typedef struct fpinfo_pci_extendedinfo
55 {
56  uint8_t device_class;
57  uint8_t device_subclass;
58  uint8_t bus;
59  uint8_t slot;
61 
67 typedef struct fpinfo_device {
68  enum fpinfo_devicetype type;
69  uintptr_t mmio_begin;
70  uintptr_t mmio_end;
71  uint32_t io_begin;
72  uint32_t io_end;
73  struct fpinfo_pci_extendedinfo *extended_info;
75 
80 typedef struct fpinfotag_hw
81 {
82  uint32_t hwcount;
83  pip_fpinfo_device *devices;
85 
90 typedef struct fpinfo {
91  uint32_t magic;
92  uint32_t membegin;
93  uint32_t memend;
94  char revision[64];
95  pip_fpinfotag_hw hwinfo;
96 } pip_fpinfo;
97 
98 #endif
uint8_t device_class
Device class.
Definition: armv7/boot/include/fpinfo.h:56
Definition: x86_multiboot/boot/include/fpinfo.h:48
uint8_t slot
PCI slot in bus.
Definition: armv7/boot/include/fpinfo.h:59
Definition: x86_multiboot/boot/include/fpinfo.h:48
First partition info, hardware section.
Definition: armv7/boot/include/fpinfo.h:80
struct fpinfotag_hw pip_fpinfotag_hw
uint8_t device_subclass
Device subclass.
Definition: armv7/boot/include/fpinfo.h:57
Definition: x86_multiboot/boot/include/fpinfo.h:48
struct fpinfo pip_fpinfo
uint8_t bus
PCI bus.
Definition: armv7/boot/include/fpinfo.h:58
struct fpinfo_pci_extendedinfo pip_fpinfo_pci_extendedinfo
Describes a PCI device (leaves the further parsing up to the partition)
Definition: armv7/boot/include/fpinfo.h:54
Represents a device, as probed by IAL.
Definition: armv7/boot/include/fpinfo.h:67
struct fpinfo_device pip_fpinfo_device
First partition info structure.
Definition: armv7/boot/include/fpinfo.h:90
fpinfo_devicetype
Describes the device type.
Definition: armv7/boot/include/fpinfo.h:48