1fea25720SGraeme Russ #ifndef _ASM_X86_E820_H 2fea25720SGraeme Russ #define _ASM_X86_E820_H 324ff8e70SBin Meng 4fea25720SGraeme Russ #define E820MAX 128 /* number of entries in E820MAP */ 5fea25720SGraeme Russ 6fea25720SGraeme Russ #define E820_RAM 1 7fea25720SGraeme Russ #define E820_RESERVED 2 8fea25720SGraeme Russ #define E820_ACPI 3 9fea25720SGraeme Russ #define E820_NVS 4 10fea25720SGraeme Russ #define E820_UNUSABLE 5 11fea25720SGraeme Russ 12fea25720SGraeme Russ #ifndef __ASSEMBLY__ 13fea25720SGraeme Russ #include <linux/types.h> 1424ff8e70SBin Meng 15*45519924SBin Meng struct e820_entry { 16fea25720SGraeme Russ __u64 addr; /* start of memory segment */ 17fea25720SGraeme Russ __u64 size; /* size of memory segment */ 18fea25720SGraeme Russ __u32 type; /* type of memory segment */ 19fea25720SGraeme Russ } __attribute__((packed)); 20fea25720SGraeme Russ 21fea25720SGraeme Russ #define ISA_START_ADDRESS 0xa0000 22fea25720SGraeme Russ #define ISA_END_ADDRESS 0x100000 23fea25720SGraeme Russ 24fea25720SGraeme Russ #endif /* __ASSEMBLY__ */ 25fea25720SGraeme Russ 2659ec719dSBin Meng /* Implementation defined function to install an e820 map */ 2787af71c2SBin Meng unsigned int install_e820_map(unsigned int max_entries, 28*45519924SBin Meng struct e820_entry *); 2959ec719dSBin Meng 30fea25720SGraeme Russ #endif /* _ASM_X86_E820_H */ 31