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