Merge branch 'for-2.6.39/drivers' of git://git.kernel.dk/linux-2.6-block
[pandora-kernel.git] / arch / x86 / include / asm / numa_64.h
1 #ifndef _ASM_X86_NUMA_64_H
2 #define _ASM_X86_NUMA_64_H
3
4 #include <linux/nodemask.h>
5
6 struct bootnode {
7         u64 start;
8         u64 end;
9 };
10
11 #define ZONE_ALIGN (1UL << (MAX_ORDER+PAGE_SHIFT))
12
13 extern int numa_off;
14
15 extern unsigned long numa_free_all_bootmem(void);
16 extern void setup_node_bootmem(int nodeid, unsigned long start,
17                                unsigned long end);
18
19 #ifdef CONFIG_NUMA
20 /*
21  * Too small node sizes may confuse the VM badly. Usually they
22  * result from BIOS bugs. So dont recognize nodes as standalone
23  * NUMA entities that have less than this amount of RAM listed:
24  */
25 #define NODE_MIN_SIZE (4*1024*1024)
26
27 extern nodemask_t numa_nodes_parsed __initdata;
28
29 extern int __cpuinit numa_cpu_node(int cpu);
30 extern int __init numa_add_memblk(int nodeid, u64 start, u64 end);
31 extern void __init numa_set_distance(int from, int to, int distance);
32
33 #ifdef CONFIG_NUMA_EMU
34 #define FAKE_NODE_MIN_SIZE      ((u64)32 << 20)
35 #define FAKE_NODE_MIN_HASH_MASK (~(FAKE_NODE_MIN_SIZE - 1UL))
36 void numa_emu_cmdline(char *);
37 #endif /* CONFIG_NUMA_EMU */
38 #else
39 static inline int numa_cpu_node(int cpu)                { return NUMA_NO_NODE; }
40 #endif
41
42 #endif /* _ASM_X86_NUMA_64_H */