]> Git Repo - linux.git/blob - include/linux/numa.h
Merge tag 'x86-irq-2023-10-28' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
[linux.git] / include / linux / numa.h
1 /* SPDX-License-Identifier: GPL-2.0 */
2 #ifndef _LINUX_NUMA_H
3 #define _LINUX_NUMA_H
4 #include <linux/types.h>
5
6 #ifdef CONFIG_NODES_SHIFT
7 #define NODES_SHIFT     CONFIG_NODES_SHIFT
8 #else
9 #define NODES_SHIFT     0
10 #endif
11
12 #define MAX_NUMNODES    (1 << NODES_SHIFT)
13
14 #define NUMA_NO_NODE    (-1)
15
16 /* optionally keep NUMA memory info available post init */
17 #ifdef CONFIG_NUMA_KEEP_MEMINFO
18 #define __initdata_or_meminfo
19 #else
20 #define __initdata_or_meminfo __initdata
21 #endif
22
23 #ifdef CONFIG_NUMA
24 #include <linux/printk.h>
25 #include <asm/sparsemem.h>
26
27 /* Generic implementation available */
28 int numa_nearest_node(int node, unsigned int state);
29
30 #ifndef memory_add_physaddr_to_nid
31 static inline int memory_add_physaddr_to_nid(u64 start)
32 {
33         pr_info_once("Unknown online node for memory at 0x%llx, assuming node 0\n",
34                         start);
35         return 0;
36 }
37 #endif
38 #ifndef phys_to_target_node
39 static inline int phys_to_target_node(u64 start)
40 {
41         pr_info_once("Unknown target node for memory at 0x%llx, assuming node 0\n",
42                         start);
43         return 0;
44 }
45 #endif
46 #else /* !CONFIG_NUMA */
47 static inline int numa_nearest_node(int node, unsigned int state)
48 {
49         return NUMA_NO_NODE;
50 }
51
52 static inline int memory_add_physaddr_to_nid(u64 start)
53 {
54         return 0;
55 }
56 static inline int phys_to_target_node(u64 start)
57 {
58         return 0;
59 }
60 #endif
61
62 #define numa_map_to_online_node(node) numa_nearest_node(node, N_ONLINE)
63
64 #ifdef CONFIG_HAVE_ARCH_NODE_DEV_GROUP
65 extern const struct attribute_group arch_node_dev_group;
66 #endif
67
68 #endif /* _LINUX_NUMA_H */
This page took 0.038645 seconds and 4 git commands to generate.