x86: make e820.c to have common functions
[pandora-kernel.git] / include / asm-x86 / e820.h
1 #ifndef __ASM_E820_H
2 #define __ASM_E820_H
3 #define E820MAP 0x2d0           /* our map */
4 #define E820MAX 128             /* number of entries in E820MAP */
5 #define E820NR  0x1e8           /* # entries in E820MAP */
6
7 #define E820_RAM        1
8 #define E820_RESERVED   2
9 #define E820_ACPI       3
10 #define E820_NVS        4
11
12 #ifndef __ASSEMBLY__
13 struct e820entry {
14         __u64 addr;     /* start of memory segment */
15         __u64 size;     /* size of memory segment */
16         __u32 type;     /* type of memory segment */
17 } __attribute__((packed));
18
19 struct e820map {
20         __u32 nr_map;
21         struct e820entry map[E820MAX];
22 };
23
24 extern struct e820map e820;
25
26 extern int e820_any_mapped(u64 start, u64 end, unsigned type);
27 extern int e820_all_mapped(u64 start, u64 end, unsigned type);
28 extern void add_memory_region(u64 start, u64 size, int type);
29 extern void e820_print_map(char *who);
30 extern int sanitize_e820_map(struct e820entry *biosmap, char *pnr_map);
31 extern int copy_e820_map(struct e820entry *biosmap, int nr_map);
32 extern u64 update_memory_range(u64 start, u64 size, unsigned old_type,
33                                unsigned new_type);
34 extern void update_e820(void);
35 extern void e820_setup_gap(void);
36
37 #endif /* __ASSEMBLY__ */
38
39 #define ISA_START_ADDRESS       0xa0000
40 #define ISA_END_ADDRESS         0x100000
41
42 #define BIOS_BEGIN              0x000a0000
43 #define BIOS_END                0x00100000
44
45 #ifdef __KERNEL__
46 #ifdef CONFIG_X86_32
47 # include "e820_32.h"
48 #else
49 # include "e820_64.h"
50 #endif
51 #endif /* __KERNEL__ */
52
53 #endif  /* __ASM_E820_H */