source: trunk/packages/xen-3.1/xen-3.1/linux-2.6-xen-sparse/include/asm-x86_64/mach-xen/asm/e820.h @ 34

Last change on this file since 34 was 34, checked in by hartmans, 18 years ago

Add xen and xen-common

File size: 2.1 KB
Line 
1/*
2 * structures and definitions for the int 15, ax=e820 memory map
3 * scheme.
4 *
5 * In a nutshell, setup.S populates a scratch table in the
6 * empty_zero_block that contains a list of usable address/size
7 * duples.  setup.c, this information is transferred into the e820map,
8 * and in init.c/numa.c, that new information is used to mark pages
9 * reserved or not.
10 */
11#ifndef __E820_HEADER
12#define __E820_HEADER
13
14#include <linux/mmzone.h>
15
16#define E820MAP 0x2d0           /* our map */
17#define E820MAX 128             /* number of entries in E820MAP */
18#define E820NR  0x1e8           /* # entries in E820MAP */
19
20#define E820_RAM        1
21#define E820_RESERVED   2
22#define E820_ACPI       3 /* usable as RAM once ACPI tables have been read */
23#define E820_NVS        4
24
25#define HIGH_MEMORY     (1024*1024)
26
27#define LOWMEMSIZE()    (0x9f000)
28
29#ifndef __ASSEMBLY__
30struct e820entry {
31        u64 addr;       /* start of memory segment */
32        u64 size;       /* size of memory segment */
33        u32 type;       /* type of memory segment */
34} __attribute__((packed));
35
36struct e820map {
37    int nr_map;
38        struct e820entry map[E820MAX];
39};
40
41extern unsigned long find_e820_area(unsigned long start, unsigned long end, 
42                                    unsigned size);
43extern void add_memory_region(unsigned long start, unsigned long size, 
44                              int type);
45extern void setup_memory_region(void);
46extern void contig_e820_setup(void); 
47extern unsigned long e820_end_of_ram(void);
48extern void e820_reserve_resources(struct e820entry *e820, int nr_map);
49extern void e820_print_map(char *who);
50extern int e820_any_mapped(unsigned long start, unsigned long end, unsigned type);
51extern int e820_all_mapped(unsigned long start, unsigned long end, unsigned type);
52
53extern void e820_bootmem_free(pg_data_t *pgdat, unsigned long start,unsigned long end);
54extern void e820_setup_gap(struct e820entry *e820, int nr_map);
55extern unsigned long e820_hole_size(unsigned long start_pfn,
56                                    unsigned long end_pfn);
57
58extern void __init parse_memopt(char *p, char **end);
59extern void __init parse_memmapopt(char *p, char **end);
60
61extern struct e820map e820;
62
63extern unsigned ebda_addr, ebda_size;
64#endif/*!__ASSEMBLY__*/
65
66#endif/*__E820_HEADER*/
Note: See TracBrowser for help on using the repository browser.