Code to install the new E820 mangler (which doesn't require copying
[people/xl0/gpxe.git] / src / arch / i386 / include / memsizes.h
1 #ifndef MEMSIZES_H
2 #define MEMSIZES_H
3
4 /*
5  * These structures seem to be very i386 (and, in fact, PCBIOS)
6  * specific, so I've moved them out of etherboot.h.
7  *
8  */
9
10 struct e820entry {
11         uint64_t addr;
12         uint64_t size;
13         uint32_t type;
14 #define E820_RAM        1
15 #define E820_RESERVED   2
16 #define E820_ACPI       3 /* usable as RAM once ACPI tables have been read */
17 #define E820_NVS        4
18 } __attribute__ (( packed ));
19 #define E820ENTRY_SIZE 20
20 #define E820MAX 32
21
22 struct meminfo {
23         uint16_t basememsize;
24         uint16_t pad;
25         uint32_t memsize;
26         uint32_t map_count;
27         struct e820entry map[E820MAX];
28 } __attribute__ (( packed ));
29
30 extern struct meminfo meminfo;
31
32 extern void get_memsizes ( void );
33
34 #endif /* MEMSIZES_H */