Commit | Line | Data |
---|---|---|
1da177e4 LT |
1 | /* |
2 | * Written by Pat Gaughen (gone@us.ibm.com) Mar 2002 | |
3 | * | |
4 | */ | |
5 | ||
1965aae3 PA |
6 | #ifndef _ASM_X86_MMZONE_32_H |
7 | #define _ASM_X86_MMZONE_32_H | |
1da177e4 LT |
8 | |
9 | #include <asm/smp.h> | |
10 | ||
8ff8b27b | 11 | #ifdef CONFIG_NUMA |
05b79bdc AW |
12 | extern struct pglist_data *node_data[]; |
13 | #define NODE_DATA(nid) (node_data[nid]) | |
1da177e4 | 14 | |
d49c4288 | 15 | #include <asm/numaq.h> |
1da177e4 | 16 | |
97a70e54 RW |
17 | extern void resume_map_numa_kva(pgd_t *pgd); |
18 | ||
8ff8b27b | 19 | #else /* !CONFIG_NUMA */ |
91023300 | 20 | |
97a70e54 RW |
21 | static inline void resume_map_numa_kva(pgd_t *pgd) {} |
22 | ||
05b79bdc AW |
23 | #endif /* CONFIG_NUMA */ |
24 | ||
25 | #ifdef CONFIG_DISCONTIGMEM | |
1da177e4 LT |
26 | |
27 | /* | |
28 | * generic node memory support, the following assumptions apply: | |
29 | * | |
af901ca1 | 30 | * 1) memory comes in 64Mb contiguous chunks which are either present or not |
1da177e4 LT |
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 | |
d0ead157 TH |
37 | #define MAX_SECTIONS 1024 |
38 | #define PAGES_PER_SECTION (MAX_NR_PAGES/MAX_SECTIONS) | |
1da177e4 LT |
39 | |
40 | extern s8 physnode_map[]; | |
41 | ||
42 | static inline int pfn_to_nid(unsigned long pfn) | |
43 | { | |
44 | #ifdef CONFIG_NUMA | |
d0ead157 | 45 | return((int) physnode_map[(pfn) / PAGES_PER_SECTION]); |
1da177e4 LT |
46 | #else |
47 | return 0; | |
48 | #endif | |
49 | } | |
50 | ||
1da177e4 LT |
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 | } | |
05b79bdc | 59 | |
a26474e8 TH |
60 | #define early_pfn_valid(pfn) pfn_valid((pfn)) |
61 | ||
05b79bdc AW |
62 | #endif /* CONFIG_DISCONTIGMEM */ |
63 | ||
1965aae3 | 64 | #endif /* _ASM_X86_MMZONE_32_H */ |