Commit | Line | Data |
---|---|---|
ae3c107c AP |
1 | /* SPDX-License-Identifier: GPL-2.0 */ |
2 | #ifndef __ASM_GENERIC_NUMA_H | |
3 | #define __ASM_GENERIC_NUMA_H | |
4 | ||
5 | #ifdef CONFIG_NUMA | |
6 | ||
7 | #define NR_NODE_MEMBLKS (MAX_NUMNODES * 2) | |
8 | ||
9 | int __node_distance(int from, int to); | |
10 | #define node_distance(a, b) __node_distance(a, b) | |
11 | ||
12 | extern nodemask_t numa_nodes_parsed __initdata; | |
13 | ||
14 | extern bool numa_off; | |
15 | ||
16 | /* Mappings between node number and cpus on that node. */ | |
17 | extern cpumask_var_t node_to_cpumask_map[MAX_NUMNODES]; | |
18 | void numa_clear_node(unsigned int cpu); | |
19 | ||
20 | #ifdef CONFIG_DEBUG_PER_CPU_MAPS | |
21 | const struct cpumask *cpumask_of_node(int node); | |
22 | #else | |
23 | /* Returns a pointer to the cpumask of CPUs on Node 'node'. */ | |
24 | static inline const struct cpumask *cpumask_of_node(int node) | |
25 | { | |
26 | if (node == NUMA_NO_NODE) | |
27 | return cpu_all_mask; | |
28 | ||
29 | return node_to_cpumask_map[node]; | |
30 | } | |
31 | #endif | |
32 | ||
33 | void __init arch_numa_init(void); | |
34 | int __init numa_add_memblk(int nodeid, u64 start, u64 end); | |
35 | void __init numa_set_distance(int from, int to, int distance); | |
36 | void __init numa_free_distance(void); | |
37 | void __init early_map_cpu_to_node(unsigned int cpu, int nid); | |
38 | void numa_store_cpu_info(unsigned int cpu); | |
39 | void numa_add_cpu(unsigned int cpu); | |
40 | void numa_remove_cpu(unsigned int cpu); | |
41 | ||
42 | #else /* CONFIG_NUMA */ | |
43 | ||
44 | static inline void numa_store_cpu_info(unsigned int cpu) { } | |
45 | static inline void numa_add_cpu(unsigned int cpu) { } | |
46 | static inline void numa_remove_cpu(unsigned int cpu) { } | |
47 | static inline void arch_numa_init(void) { } | |
48 | static inline void early_map_cpu_to_node(unsigned int cpu, int nid) { } | |
49 | ||
50 | #endif /* CONFIG_NUMA */ | |
51 | ||
52 | #endif /* __ASM_GENERIC_NUMA_H */ |