Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 1 | /* |
| 2 | * structures and definitions for the int 15, ax=e820 memory map |
| 3 | * scheme. |
| 4 | * |
| 5 | * In a nutshell, arch/i386/boot/setup.S populates a scratch table |
| 6 | * in the empty_zero_block that contains a list of usable address/size |
| 7 | * duples. In arch/i386/kernel/setup.c, this information is |
| 8 | * transferred into the e820map, and in arch/i386/mm/init.c, that |
| 9 | * new information is used to mark pages reserved or not. |
| 10 | * |
| 11 | */ |
| 12 | #ifndef __E820_HEADER |
| 13 | #define __E820_HEADER |
| 14 | |
Bernhard Walle | c9cce83 | 2008-01-30 13:30:32 +0100 | [diff] [blame] | 15 | #include <linux/ioport.h> |
| 16 | |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 17 | #define HIGH_MEMORY (1024*1024) |
| 18 | |
| 19 | #ifndef __ASSEMBLY__ |
| 20 | |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 21 | extern struct e820map e820; |
Yinghai Lu | 093af8d | 2008-01-30 13:33:32 +0100 | [diff] [blame] | 22 | extern void update_e820(void); |
Arjan van de Ven | 9522236 | 2006-04-07 19:49:27 +0200 | [diff] [blame] | 23 | |
| 24 | extern int e820_all_mapped(unsigned long start, unsigned long end, |
| 25 | unsigned type); |
Jan Beulich | b92e9fa | 2007-05-02 19:27:11 +0200 | [diff] [blame] | 26 | extern int e820_any_mapped(u64 start, u64 end, unsigned type); |
bibo,mao | b2dff6a | 2006-12-07 02:14:06 +0100 | [diff] [blame] | 27 | extern void find_max_pfn(void); |
bibo,mao | b5b2405 | 2006-12-07 02:14:06 +0100 | [diff] [blame] | 28 | extern void register_bootmem_low_pages(unsigned long max_low_pfn); |
Yinghai Lu | 093af8d | 2008-01-30 13:33:32 +0100 | [diff] [blame] | 29 | extern void add_memory_region(unsigned long long start, |
| 30 | unsigned long long size, int type); |
Yasunori Goto | 5c95da9 | 2006-12-22 01:09:54 -0800 | [diff] [blame] | 31 | extern void e820_register_memory(void); |
bibo,mao | cef518e | 2006-12-07 02:14:06 +0100 | [diff] [blame] | 32 | extern void limit_regions(unsigned long long size); |
| 33 | extern void print_memory_map(char *who); |
Huang, Ying | 2215e69 | 2008-01-30 13:31:19 +0100 | [diff] [blame] | 34 | extern void init_iomem_resources(struct resource *code_resource, |
Bernhard Walle | c9cce83 | 2008-01-30 13:30:32 +0100 | [diff] [blame] | 35 | struct resource *data_resource, |
| 36 | struct resource *bss_resource); |
Arjan van de Ven | 9522236 | 2006-04-07 19:49:27 +0200 | [diff] [blame] | 37 | |
Rafael J. Wysocki | b0cb1a1 | 2007-07-29 23:24:36 +0200 | [diff] [blame] | 38 | #if defined(CONFIG_PM) && defined(CONFIG_HIBERNATION) |
Rafael J. Wysocki | 1c10070 | 2007-07-21 17:11:09 +0200 | [diff] [blame] | 39 | extern void e820_mark_nosave_regions(void); |
| 40 | #else |
| 41 | static inline void e820_mark_nosave_regions(void) |
| 42 | { |
| 43 | } |
| 44 | #endif |
| 45 | |
Bernhard Walle | c9cce83 | 2008-01-30 13:30:32 +0100 | [diff] [blame] | 46 | |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 47 | #endif/*!__ASSEMBLY__*/ |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 48 | #endif/*__E820_HEADER*/ |