Commit | Line | Data |
---|---|---|
1965aae3 PA |
1 | #ifndef _ASM_X86_E820_H |
2 | #define _ASM_X86_E820_H | |
028b7858 | 3 | |
028b7858 PJ |
4 | #ifdef CONFIG_EFI |
5 | #include <linux/numa.h> | |
6 | #define E820_X_MAX (E820MAX + 3 * MAX_NUMNODES) | |
7 | #else /* ! CONFIG_EFI */ | |
8 | #define E820_X_MAX E820MAX | |
9 | #endif | |
af170c50 | 10 | #include <uapi/asm/e820.h> |
ee8e7cfe | 11 | #ifndef __ASSEMBLY__ |
5dfcf14d | 12 | /* see comment in arch/x86/kernel/e820.c */ |
b79cd8f1 | 13 | extern struct e820map e820; |
5dfcf14d | 14 | extern struct e820map e820_saved; |
b79cd8f1 | 15 | |
a7b7511a | 16 | extern unsigned long pci_mem_start; |
b79cd8f1 YL |
17 | extern int e820_any_mapped(u64 start, u64 end, unsigned type); |
18 | extern int e820_all_mapped(u64 start, u64 end, unsigned type); | |
d0be6bde | 19 | extern void e820_add_region(u64 start, u64 size, int type); |
b79cd8f1 | 20 | extern void e820_print_map(char *who); |
c3965bd1 | 21 | extern int |
ba639039 | 22 | sanitize_e820_map(struct e820entry *biosmap, int max_nr_map, u32 *pnr_map); |
d0be6bde | 23 | extern u64 e820_update_range(u64 start, u64 size, unsigned old_type, |
b79cd8f1 | 24 | unsigned new_type); |
7a1fd986 YL |
25 | extern u64 e820_remove_range(u64 start, u64 size, unsigned old_type, |
26 | int checktype); | |
b79cd8f1 YL |
27 | extern void update_e820(void); |
28 | extern void e820_setup_gap(void); | |
3381959d | 29 | extern int e820_search_gap(unsigned long *gapstart, unsigned long *gapsize, |
fd6493e1 | 30 | unsigned long start_addr, unsigned long long end_addr); |
8c5beb50 | 31 | struct setup_data; |
30e46b57 | 32 | extern void parse_e820_ext(u64 phys_addr, u32 data_len); |
b79cd8f1 | 33 | |
bf62f398 YL |
34 | #if defined(CONFIG_X86_64) || \ |
35 | (defined(CONFIG_X86_32) && defined(CONFIG_HIBERNATION)) | |
36 | extern void e820_mark_nosave_regions(unsigned long limit_pfn); | |
37 | #else | |
38 | static inline void e820_mark_nosave_regions(unsigned long limit_pfn) | |
39 | { | |
40 | } | |
41 | #endif | |
42 | ||
1f067167 YL |
43 | #ifdef CONFIG_MEMTEST |
44 | extern void early_memtest(unsigned long start, unsigned long end); | |
45 | #else | |
46 | static inline void early_memtest(unsigned long start, unsigned long end) | |
47 | { | |
48 | } | |
49 | #endif | |
50 | ||
f361a450 YL |
51 | extern unsigned long e820_end_of_ram_pfn(void); |
52 | extern unsigned long e820_end_of_low_ram_pfn(void); | |
ab5d140b | 53 | extern u64 early_reserve_e820(u64 sizet, u64 align); |
72d7c3b3 YL |
54 | |
55 | void memblock_x86_fill(void); | |
6f2a7536 YL |
56 | void memblock_find_dma_reserve(void); |
57 | ||
ab4a465e | 58 | extern void finish_e820_parsing(void); |
41c094fd | 59 | extern void e820_reserve_resources(void); |
58f7c988 | 60 | extern void e820_reserve_resources_late(void); |
064d25f1 | 61 | extern void setup_memory_map(void); |
95a71a45 | 62 | extern char *default_machine_specific_memory_setup(void); |
ee8e7cfe | 63 | |
ccef0864 PA |
64 | /* |
65 | * Returns true iff the specified range [s,e) is completely contained inside | |
66 | * the ISA region. | |
67 | */ | |
65f116f5 PA |
68 | static inline bool is_ISA_range(u64 s, u64 e) |
69 | { | |
ccef0864 | 70 | return s >= ISA_START_ADDRESS && e <= ISA_END_ADDRESS; |
65f116f5 | 71 | } |
306c142f | 72 | |
65f116f5 | 73 | #endif /* __ASSEMBLY__ */ |
064d25f1 YL |
74 | #include <linux/ioport.h> |
75 | ||
064d25f1 | 76 | #define HIGH_MEMORY (1024*1024) |
1965aae3 | 77 | #endif /* _ASM_X86_E820_H */ |