Green shading in the line number column means the source is part of the translation unit, red means it is conditionally excluded. Highlighted line numbers link to the translation unit page. Highlighted macros link to the macro page.
1: #ifndef _ASM_X86_NUMA_H 2: #define _ASM_X86_NUMA_H 3: 4: #include <linux/nodemask.h> 5: 6: #include <asm/topology.h> 7: #include <asm/apicdef.h> 8: 9: #ifdef CONFIG_NUMA 10: 11: #define NR_NODE_MEMBLKS (MAX_NUMNODES*2) 12: #define ZONE_ALIGN (1UL << (MAX_ORDER+PAGE_SHIFT)) 13: 14: /* 15: * Too small node sizes may confuse the VM badly. Usually they 16: * result from BIOS bugs. So dont recognize nodes as standalone 17: * NUMA entities that have less than this amount of RAM listed: 18: */ 19: #define NODE_MIN_SIZE (4*1024*1024) 20: 21: extern int numa_off; 22: 23: /* 24: * __apicid_to_node[] stores the raw mapping between physical apicid and 25: * node and is used to initialize cpu_to_node mapping. 26: * 27: * The mapping may be overridden by apic->numa_cpu_node() on 32bit and thus 28: * should be accessed by the accessors - set_apicid_to_node() and 29: * numa_cpu_node(). 30: */ 31: extern s16 __apicid_to_node[MAX_LOCAL_APIC]; 32: extern nodemask_t numa_nodes_parsed __initdata; 33: 34: extern int __init numa_add_memblk(int nodeid, u64 start, u64 end); 35: extern void __init numa_set_distance(int from, int to, int distance); 36: 37: static inline void set_apicid_to_node(int apicid, s16 node) 38: { 39: __apicid_to_node[apicid] = node; 40: } 41: 42: extern int numa_cpu_node(int cpu); 43: 44: #else /* CONFIG_NUMA */ 45: static inline void set_apicid_to_node(int apicid, s16 node) 46: { 47: } 48: 49: static inline int numa_cpu_node(int cpu) 50: { 51: return NUMA_NO_NODE; 52: } 53: #endif /* CONFIG_NUMA */ 54: 55: #ifdef CONFIG_X86_32 56: # include <asm/numa_32.h> 57: #endif 58: 59: #ifdef CONFIG_NUMA 60: extern void numa_set_node(int cpu, int node); 61: extern void numa_clear_node(int cpu); 62: extern void __init init_cpu_to_node(void); 63: extern void numa_add_cpu(int cpu); 64: extern void numa_remove_cpu(int cpu); 65: #else /* CONFIG_NUMA */ 66: static inline void numa_set_node(int cpu, int node) { } 67: static inline void numa_clear_node(int cpu) { } 68: static inline void init_cpu_to_node(void) { } 69: static inline void numa_add_cpu(int cpu) { } 70: static inline void numa_remove_cpu(int cpu) { } 71: #endif /* CONFIG_NUMA */ 72: 73: #ifdef CONFIG_DEBUG_PER_CPU_MAPS 74: void debug_cpumask_set_cpu(int cpu, int node, bool enable); 75: #endif 76: 77: #ifdef CONFIG_NUMA_EMU 78: #define FAKE_NODE_MIN_SIZE ((u64)32 << 20) 79: #define FAKE_NODE_MIN_HASH_MASK (~(FAKE_NODE_MIN_SIZE - 1UL)) 80: void numa_emu_cmdline(char *); 81: #endif /* CONFIG_NUMA_EMU */ 82: 83: #endif /* _ASM_X86_NUMA_H */ 84: