Rev 5270 | Go to most recent revision | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 5270 | Rev 6082 | ||
---|---|---|---|
1 | #ifndef _ASM_X86_E820_H |
1 | #ifndef _ASM_X86_E820_H |
2 | #define _ASM_X86_E820_H |
2 | #define _ASM_X86_E820_H |
3 | 3 | ||
4 | #ifdef CONFIG_EFI |
4 | #ifdef CONFIG_EFI |
5 | #include |
5 | #include |
6 | #define E820_X_MAX (E820MAX + 3 * MAX_NUMNODES) |
6 | #define E820_X_MAX (E820MAX + 3 * MAX_NUMNODES) |
7 | #else /* ! CONFIG_EFI */ |
7 | #else /* ! CONFIG_EFI */ |
8 | #define E820_X_MAX E820MAX |
8 | #define E820_X_MAX E820MAX |
9 | #endif |
9 | #endif |
10 | #include |
10 | #include |
11 | #ifndef __ASSEMBLY__ |
11 | #ifndef __ASSEMBLY__ |
12 | /* see comment in arch/x86/kernel/e820.c */ |
12 | /* see comment in arch/x86/kernel/e820.c */ |
13 | extern struct e820map e820; |
13 | extern struct e820map e820; |
14 | extern struct e820map e820_saved; |
14 | extern struct e820map e820_saved; |
15 | 15 | ||
16 | extern unsigned long pci_mem_start; |
16 | extern unsigned long pci_mem_start; |
17 | extern int e820_any_mapped(u64 start, u64 end, unsigned type); |
17 | extern int e820_any_mapped(u64 start, u64 end, unsigned type); |
18 | extern int e820_all_mapped(u64 start, u64 end, unsigned type); |
18 | extern int e820_all_mapped(u64 start, u64 end, unsigned type); |
19 | extern void e820_add_region(u64 start, u64 size, int type); |
19 | extern void e820_add_region(u64 start, u64 size, int type); |
20 | extern void e820_print_map(char *who); |
20 | extern void e820_print_map(char *who); |
21 | extern int |
21 | extern int |
22 | sanitize_e820_map(struct e820entry *biosmap, int max_nr_map, u32 *pnr_map); |
22 | sanitize_e820_map(struct e820entry *biosmap, int max_nr_map, u32 *pnr_map); |
23 | extern u64 e820_update_range(u64 start, u64 size, unsigned old_type, |
23 | extern u64 e820_update_range(u64 start, u64 size, unsigned old_type, |
24 | unsigned new_type); |
24 | unsigned new_type); |
25 | extern u64 e820_remove_range(u64 start, u64 size, unsigned old_type, |
25 | extern u64 e820_remove_range(u64 start, u64 size, unsigned old_type, |
26 | int checktype); |
26 | int checktype); |
27 | extern void update_e820(void); |
27 | extern void update_e820(void); |
28 | extern void e820_setup_gap(void); |
28 | extern void e820_setup_gap(void); |
29 | extern int e820_search_gap(unsigned long *gapstart, unsigned long *gapsize, |
29 | extern int e820_search_gap(unsigned long *gapstart, unsigned long *gapsize, |
30 | unsigned long start_addr, unsigned long long end_addr); |
30 | unsigned long start_addr, unsigned long long end_addr); |
31 | struct setup_data; |
31 | struct setup_data; |
32 | extern void parse_e820_ext(u64 phys_addr, u32 data_len); |
32 | extern void parse_e820_ext(u64 phys_addr, u32 data_len); |
33 | 33 | ||
34 | #if defined(CONFIG_X86_64) || \ |
34 | #if defined(CONFIG_X86_64) || \ |
35 | (defined(CONFIG_X86_32) && defined(CONFIG_HIBERNATION)) |
35 | (defined(CONFIG_X86_32) && defined(CONFIG_HIBERNATION)) |
36 | extern void e820_mark_nosave_regions(unsigned long limit_pfn); |
36 | extern void e820_mark_nosave_regions(unsigned long limit_pfn); |
37 | #else |
37 | #else |
38 | static inline void e820_mark_nosave_regions(unsigned long limit_pfn) |
38 | static inline void e820_mark_nosave_regions(unsigned long limit_pfn) |
39 | { |
39 | { |
40 | } |
40 | } |
41 | #endif |
41 | #endif |
42 | - | ||
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 | 42 | ||
51 | extern unsigned long e820_end_of_ram_pfn(void); |
43 | extern unsigned long e820_end_of_ram_pfn(void); |
52 | extern unsigned long e820_end_of_low_ram_pfn(void); |
44 | extern unsigned long e820_end_of_low_ram_pfn(void); |
53 | extern u64 early_reserve_e820(u64 sizet, u64 align); |
45 | extern u64 early_reserve_e820(u64 sizet, u64 align); |
54 | 46 | ||
55 | void memblock_x86_fill(void); |
47 | void memblock_x86_fill(void); |
56 | void memblock_find_dma_reserve(void); |
48 | void memblock_find_dma_reserve(void); |
57 | 49 | ||
58 | extern void finish_e820_parsing(void); |
50 | extern void finish_e820_parsing(void); |
59 | extern void e820_reserve_resources(void); |
51 | extern void e820_reserve_resources(void); |
60 | extern void e820_reserve_resources_late(void); |
52 | extern void e820_reserve_resources_late(void); |
61 | extern void setup_memory_map(void); |
53 | extern void setup_memory_map(void); |
62 | extern char *default_machine_specific_memory_setup(void); |
54 | extern char *default_machine_specific_memory_setup(void); |
63 | 55 | ||
64 | /* |
56 | /* |
65 | * Returns true iff the specified range [s,e) is completely contained inside |
57 | * Returns true iff the specified range [s,e) is completely contained inside |
66 | * the ISA region. |
58 | * the ISA region. |
67 | */ |
59 | */ |
68 | static inline bool is_ISA_range(u64 s, u64 e) |
60 | static inline bool is_ISA_range(u64 s, u64 e) |
69 | { |
61 | { |
70 | return s >= ISA_START_ADDRESS && e <= ISA_END_ADDRESS; |
62 | return s >= ISA_START_ADDRESS && e <= ISA_END_ADDRESS; |
71 | } |
63 | } |
72 | 64 | ||
73 | #endif /* __ASSEMBLY__ */ |
65 | #endif /* __ASSEMBLY__ */ |
74 | #include |
66 | #include |
75 | 67 | ||
76 | #define HIGH_MEMORY (1024*1024) |
68 | #define HIGH_MEMORY (1024*1024) |
77 | #endif /* _ASM_X86_E820_H */=> |
69 | #endif /* _ASM_X86_E820_H */=> |