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
x86
include
asm
mmzone_32.h
Go to the documentation of this file.
1
/*
2
* Written by Pat Gaughen (
[email protected]
) Mar 2002
3
*
4
*/
5
6
#ifndef _ASM_X86_MMZONE_32_H
7
#define _ASM_X86_MMZONE_32_H
8
9
#include <asm/smp.h>
10
11
#ifdef CONFIG_NUMA
12
extern
struct
pglist_data
*
node_data
[];
13
#define NODE_DATA(nid) (node_data[nid])
14
15
#include <
asm/numaq.h
>
16
17
extern
void
resume_map_numa_kva(
pgd_t
*pgd);
18
19
#else
/* !CONFIG_NUMA */
20
21
static
inline
void
resume_map_numa_kva(
pgd_t
*pgd) {}
22
23
#endif
/* CONFIG_NUMA */
24
25
#ifdef CONFIG_DISCONTIGMEM
26
27
/*
28
* generic node memory support, the following assumptions apply:
29
*
30
* 1) memory comes in 64Mb contiguous chunks which are either present or not
31
* 2) we will not have more than 64Gb in total
32
*
33
* for now assume that 64Gb is max amount of RAM for whole system
34
* 64Gb / 4096bytes/page = 16777216 pages
35
*/
36
#define MAX_NR_PAGES 16777216
37
#define MAX_SECTIONS 1024
38
#define PAGES_PER_SECTION (MAX_NR_PAGES/MAX_SECTIONS)
39
40
extern
s8
physnode_map[];
41
42
static
inline
int
pfn_to_nid(
unsigned
long
pfn)
43
{
44
#ifdef CONFIG_NUMA
45
return
((
int
) physnode_map[(pfn) / PAGES_PER_SECTION]);
46
#else
47
return
0;
48
#endif
49
}
50
51
static
inline
int
pfn_valid
(
int
pfn)
52
{
53
int
nid = pfn_to_nid(pfn);
54
55
if
(nid >= 0)
56
return
(pfn <
node_end_pfn
(nid));
57
return
0;
58
}
59
60
#define early_pfn_valid(pfn) pfn_valid((pfn))
61
62
#endif
/* CONFIG_DISCONTIGMEM */
63
64
#endif
/* _ASM_X86_MMZONE_32_H */
Generated on Thu Jan 10 2013 13:20:05 for Linux Kernel by
1.8.2