xref: /openbmc/qemu/hw/i386/e820_memory_layout.h (revision 2f95279a)
1 /*
2  * QEMU BIOS e820 routines
3  *
4  * Copyright (c) 2003-2004 Fabrice Bellard
5  *
6  * SPDX-License-Identifier: MIT
7  */
8 
9 #ifndef HW_I386_E820_MEMORY_LAYOUT_H
10 #define HW_I386_E820_MEMORY_LAYOUT_H
11 
12 /* e820 types */
13 #define E820_RAM        1
14 #define E820_RESERVED   2
15 #define E820_ACPI       3
16 #define E820_NVS        4
17 #define E820_UNUSABLE   5
18 
19 struct e820_entry {
20     uint64_t address;
21     uint64_t length;
22     uint32_t type;
23 } QEMU_PACKED __attribute((__aligned__(4)));
24 
25 void e820_add_entry(uint64_t address, uint64_t length, uint32_t type);
26 bool e820_get_entry(int index, uint32_t type,
27                     uint64_t *address, uint64_t *length);
28 int e820_get_table(struct e820_entry **table);
29 
30 #endif
31