Details | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
422 | giacomo | 1 | /* |
2 | * structures and definitions for the int 15, ax=e820 memory map |
||
3 | * scheme. |
||
4 | * |
||
5 | * In a nutshell, arch/i386/boot/setup.S populates a scratch table |
||
6 | * in the empty_zero_block that contains a list of usable address/size |
||
7 | * duples. In arch/i386/kernel/setup.c, this information is |
||
8 | * transferred into the e820map, and in arch/i386/mm/init.c, that |
||
9 | * new information is used to mark pages reserved or not. |
||
10 | * |
||
11 | */ |
||
12 | #ifndef __E820_HEADER |
||
13 | #define __E820_HEADER |
||
14 | |||
15 | #define E820MAP 0x2d0 /* our map */ |
||
16 | #define E820MAX 32 /* number of entries in E820MAP */ |
||
17 | #define E820NR 0x1e8 /* # entries in E820MAP */ |
||
18 | |||
19 | #define E820_RAM 1 |
||
20 | #define E820_RESERVED 2 |
||
21 | #define E820_ACPI 3 /* usable as RAM once ACPI tables have been read */ |
||
22 | #define E820_NVS 4 |
||
23 | |||
24 | #define HIGH_MEMORY (1024*1024) |
||
25 | |||
26 | #ifndef __ASSEMBLY__ |
||
27 | |||
28 | struct e820map { |
||
29 | int nr_map; |
||
30 | struct e820entry { |
||
31 | unsigned long long addr; /* start of memory segment */ |
||
32 | unsigned long long size; /* size of memory segment */ |
||
33 | unsigned long type; /* type of memory segment */ |
||
34 | } map[E820MAX]; |
||
35 | }; |
||
36 | |||
37 | extern struct e820map e820; |
||
38 | #endif/*!__ASSEMBLY__*/ |
||
39 | |||
40 | #endif/*__E820_HEADER*/ |