Line data Source code
1 : #ifndef _ASM_X86_NUMA_64_H
2 : #define _ASM_X86_NUMA_64_H
3 :
4 : #include <linux/nodemask.h>
5 : #include <asm/apicdef.h>
6 :
7 : struct bootnode {
8 : u64 start;
9 : u64 end;
10 : };
11 :
12 : extern int compute_hash_shift(struct bootnode *nodes, int numblks,
13 : int *nodeids);
14 :
15 : #define ZONE_ALIGN (1UL << (MAX_ORDER+PAGE_SHIFT))
16 :
17 : extern void numa_init_array(void);
18 : extern int numa_off;
19 :
20 : extern s16 apicid_to_node[MAX_LOCAL_APIC];
21 :
22 : extern unsigned long numa_free_all_bootmem(void);
23 : extern void setup_node_bootmem(int nodeid, unsigned long start,
24 : unsigned long end);
25 :
26 : #ifdef CONFIG_NUMA
27 : /*
28 : * Too small node sizes may confuse the VM badly. Usually they
29 : * result from BIOS bugs. So dont recognize nodes as standalone
30 : * NUMA entities that have less than this amount of RAM listed:
31 : */
32 : #define NODE_MIN_SIZE (4*1024*1024)
33 :
34 : extern void __init init_cpu_to_node(void);
35 : extern void __cpuinit numa_set_node(int cpu, int node);
36 : extern void __cpuinit numa_clear_node(int cpu);
37 : extern void __cpuinit numa_add_cpu(int cpu);
38 : extern void __cpuinit numa_remove_cpu(int cpu);
39 1 : #else
40 : static inline void init_cpu_to_node(void) { }
41 : static inline void numa_set_node(int cpu, int node) { }
42 : static inline void numa_clear_node(int cpu) { }
43 : static inline void numa_add_cpu(int cpu, int node) { }
44 : static inline void numa_remove_cpu(int cpu) { }
45 : #endif
46 :
47 : #endif /* _ASM_X86_NUMA_64_H */
|