Linux Kernel
3.7.1
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
arch
ia64
include
asm
meminit.h
Go to the documentation of this file.
1
#ifndef meminit_h
2
#define meminit_h
3
4
/*
5
* This file is subject to the terms and conditions of the GNU General Public
6
* License. See the file "COPYING" in the main directory of this archive
7
* for more details.
8
*/
9
10
11
/*
12
* Entries defined so far:
13
* - boot param structure itself
14
* - memory map
15
* - initrd (optional)
16
* - command line string
17
* - kernel code & data
18
* - crash dumping code reserved region
19
* - Kernel memory map built from EFI memory map
20
* - ELF core header
21
* - xen start info if CONFIG_XEN
22
*
23
* More could be added if necessary
24
*/
25
#define IA64_MAX_RSVD_REGIONS 9
26
27
struct
rsvd_region
{
28
u64
start
;
/* virtual address of beginning of element */
29
u64
end
;
/* virtual address of end of element + 1 */
30
};
31
32
extern
struct
rsvd_region
rsvd_region
[
IA64_MAX_RSVD_REGIONS
+ 1];
33
extern
int
num_rsvd_regions
;
34
35
extern
void
find_memory
(
void
);
36
extern
void
reserve_memory
(
void
);
37
extern
void
find_initrd
(
void
);
38
extern
int
filter_rsvd_memory
(
u64
start
,
u64
end
,
void
*
arg
);
39
extern
int
filter_memory
(
u64
start
,
u64
end
,
void
*
arg
);
40
extern
unsigned
long
efi_memmap_init
(
u64
*
s
,
u64
*
e
);
41
extern
int
find_max_min_low_pfn
(
u64
,
u64
,
void
*);
42
43
extern
unsigned
long
vmcore_find_descriptor_size
(
unsigned
long
address
);
44
extern
int
reserve_elfcorehdr
(
u64
*
start
,
u64
*
end
);
45
46
/*
47
* For rounding an address to the next IA64_GRANULE_SIZE or order
48
*/
49
#define GRANULEROUNDDOWN(n) ((n) & ~(IA64_GRANULE_SIZE-1))
50
#define GRANULEROUNDUP(n) (((n)+IA64_GRANULE_SIZE-1) & ~(IA64_GRANULE_SIZE-1))
51
52
#ifdef CONFIG_NUMA
53
extern
void
call_pernode_memory
(
unsigned
long
start
,
unsigned
long
len,
void
*
func
);
54
#else
55
# define call_pernode_memory(start, len, func) (*func)(start, len, 0)
56
#endif
57
58
#define IGNORE_PFN0 1
/* XXX fix me: ignore pfn 0 until TLB miss handler is updated... */
59
60
extern
int
register_active_ranges
(
u64
start
,
u64
len,
int
nid);
61
62
#ifdef CONFIG_VIRTUAL_MEM_MAP
63
# define LARGE_GAP 0x40000000
/* Use virtual mem map if hole is > than this */
64
extern
unsigned
long
VMALLOC_END
;
65
extern
struct
page
*vmem_map;
66
extern
int
find_largest_hole(
u64
start
,
u64
end
,
void
*
arg
);
67
extern
int
create_mem_map_page_table(
u64
start
,
u64
end
,
void
*
arg
);
68
extern
int
vmemmap_find_next_valid_pfn(
int
,
int
);
69
#else
70
static
inline
int
vmemmap_find_next_valid_pfn(
int
node
,
int
i
)
71
{
72
return
i + 1;
73
}
74
#endif
75
#endif
/* meminit_h */
Generated on Thu Jan 10 2013 13:06:15 for Linux Kernel by
1.8.2