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