]>
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 | ||
f361a450 YL |
43 | extern unsigned long e820_end_of_ram_pfn(void); |
44 | extern unsigned long e820_end_of_low_ram_pfn(void); | |
ab5d140b | 45 | extern u64 early_reserve_e820(u64 sizet, u64 align); |
72d7c3b3 YL |
46 | |
47 | void memblock_x86_fill(void); | |
6f2a7536 YL |
48 | void memblock_find_dma_reserve(void); |
49 | ||
ab4a465e | 50 | extern void finish_e820_parsing(void); |
41c094fd | 51 | extern void e820_reserve_resources(void); |
58f7c988 | 52 | extern void e820_reserve_resources_late(void); |
064d25f1 | 53 | extern void setup_memory_map(void); |
95a71a45 | 54 | extern char *default_machine_specific_memory_setup(void); |
ee8e7cfe | 55 | |
ccef0864 PA |
56 | /* |
57 | * Returns true iff the specified range [s,e) is completely contained inside | |
58 | * the ISA region. | |
59 | */ | |
65f116f5 PA |
60 | static inline bool is_ISA_range(u64 s, u64 e) |
61 | { | |
ccef0864 | 62 | return s >= ISA_START_ADDRESS && e <= ISA_END_ADDRESS; |
65f116f5 | 63 | } |
306c142f | 64 | |
65f116f5 | 65 | #endif /* __ASSEMBLY__ */ |
064d25f1 YL |
66 | #include <linux/ioport.h> |
67 | ||
064d25f1 | 68 | #define HIGH_MEMORY (1024*1024) |
1965aae3 | 69 | #endif /* _ASM_X86_E820_H */ |