xref: /qemu/hw/i386/e820_memory_layout.h (revision fb72e779)
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 extern struct e820_entry *e820_table;
26 
27 int e820_add_entry(uint64_t address, uint64_t length, uint32_t type);
28 int e820_get_num_entries(void);
29 bool e820_get_entry(int index, uint32_t type,
30                     uint64_t *address, uint64_t *length);
31 
32 
33 
34 #endif
35