diff options
author | Philippe Mathieu-Daudé | 2019-08-19 00:54:01 +0200 |
---|---|---|
committer | Paolo Bonzini | 2019-09-16 17:13:07 +0200 |
commit | d6d059ca07ae907b8945f88c382fb54d43f9f03a (patch) | |
tree | 17b22b48406ffe336ac52f93552247642fd5bef5 /hw/i386/e820_memory_layout.h | |
parent | hw/i386/pc: Use e820_get_num_entries() to access e820_entries (diff) | |
download | qemu-d6d059ca07ae907b8945f88c382fb54d43f9f03a.tar.gz qemu-d6d059ca07ae907b8945f88c382fb54d43f9f03a.tar.xz qemu-d6d059ca07ae907b8945f88c382fb54d43f9f03a.zip |
hw/i386/pc: Extract e820 memory layout code
Suggested-by: Samuel Ortiz <sameo@linux.intel.com>
Reviewed-by: Li Qiang <liq3ea@gmail.com>
Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Message-Id: <20190818225414.22590-3-philmd@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'hw/i386/e820_memory_layout.h')
-rw-r--r-- | hw/i386/e820_memory_layout.h | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/hw/i386/e820_memory_layout.h b/hw/i386/e820_memory_layout.h new file mode 100644 index 0000000000..2a0ceb8b9c --- /dev/null +++ b/hw/i386/e820_memory_layout.h @@ -0,0 +1,42 @@ +/* + * QEMU BIOS e820 routines + * + * Copyright (c) 2003-2004 Fabrice Bellard + * + * SPDX-License-Identifier: MIT + */ + +#ifndef HW_I386_E820_H +#define HW_I386_E820_H + +/* e820 types */ +#define E820_RAM 1 +#define E820_RESERVED 2 +#define E820_ACPI 3 +#define E820_NVS 4 +#define E820_UNUSABLE 5 + +#define E820_NR_ENTRIES 16 + +struct e820_entry { + uint64_t address; + uint64_t length; + uint32_t type; +} QEMU_PACKED __attribute((__aligned__(4))); + +struct e820_table { + uint32_t count; + struct e820_entry entry[E820_NR_ENTRIES]; +} QEMU_PACKED __attribute((__aligned__(4))); + +extern struct e820_table e820_reserve; +extern struct e820_entry *e820_table; + +int e820_add_entry(uint64_t address, uint64_t length, uint32_t type); +int e820_get_num_entries(void); +bool e820_get_entry(int index, uint32_t type, + uint64_t *address, uint64_t *length); + + + +#endif |