| #ifndef __E820MAP_H | |
| #define __E820MAP_H | |
| #include "types.h" // u64 | |
| #define E820_RAM 1 | |
| #define E820_RESERVED 2 | |
| #define E820_ACPI 3 | |
| #define E820_NVS 4 | |
| #define E820_UNUSABLE 5 | |
| #define E820_HOLE ((u32)-1) // Useful for removing entries | |
| struct e820entry { | |
| u64 start; | |
| u64 size; | |
| u32 type; | |
| }; | |
| void add_e820(u64 start, u64 size, u32 type); | |
| void memmap_prepboot(void); | |
| // A typical OS page size | |
| #define PAGE_SIZE 4096 | |
| // e820 map storage | |
| extern struct e820entry e820_list[]; | |
| extern int e820_count; | |
| #endif // e820map.h |