Subversion Repositories Kolibri OS

Rev

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 */