Commit | Line | Data |
---|---|---|
b2441318 | 1 | /* SPDX-License-Identifier: GPL-2.0 */ |
1da177e4 LT |
2 | #ifndef _LINUX_NUMA_H |
3 | #define _LINUX_NUMA_H | |
5d30f92e | 4 | #include <linux/types.h> |
1da177e4 | 5 | |
c80d79d7 YG |
6 | #ifdef CONFIG_NODES_SHIFT |
7 | #define NODES_SHIFT CONFIG_NODES_SHIFT | |
8 | #else | |
1da177e4 LT |
9 | #define NODES_SHIFT 0 |
10 | #endif | |
11 | ||
12 | #define MAX_NUMNODES (1 << NODES_SHIFT) | |
13 | ||
4e25b257 LS |
14 | #define NUMA_NO_NODE (-1) |
15 | ||
1e5d8e1e DW |
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 | ||
b2ca916c | 23 | #ifdef CONFIG_NUMA |
a927bd6b DW |
24 | #include <linux/printk.h> |
25 | #include <asm/sparsemem.h> | |
26 | ||
5d30f92e | 27 | /* Generic implementation available */ |
b2ca916c | 28 | int numa_map_to_online_node(int node); |
a927bd6b DW |
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 */ | |
b2ca916c DW |
47 | static inline int numa_map_to_online_node(int node) |
48 | { | |
49 | return NUMA_NO_NODE; | |
50 | } | |
a927bd6b DW |
51 | static inline int memory_add_physaddr_to_nid(u64 start) |
52 | { | |
53 | return 0; | |
54 | } | |
55 | static inline int phys_to_target_node(u64 start) | |
56 | { | |
57 | return 0; | |
58 | } | |
b2ca916c DW |
59 | #endif |
60 | ||
50468e43 JS |
61 | #ifdef CONFIG_HAVE_ARCH_NODE_DEV_GROUP |
62 | extern const struct attribute_group arch_node_dev_group; | |
63 | #endif | |
64 | ||
1da177e4 | 65 | #endif /* _LINUX_NUMA_H */ |