Merge tag 'drm-fixes-2024-06-22' of https://gitlab.freedesktop.org/drm/kernel
[linux-2.6-block.git] / include / linux / numa.h
CommitLineData
b2441318 1/* SPDX-License-Identifier: GPL-2.0 */
1da177e4
LT
2#ifndef _LINUX_NUMA_H
3#define _LINUX_NUMA_H
d7a73e3f 4#include <linux/init.h>
5d30f92e 5#include <linux/types.h>
1da177e4 6
c80d79d7
YG
7#ifdef CONFIG_NODES_SHIFT
8#define NODES_SHIFT CONFIG_NODES_SHIFT
9#else
1da177e4
LT
10#define NODES_SHIFT 0
11#endif
12
13#define MAX_NUMNODES (1 << NODES_SHIFT)
14
4e25b257 15#define NUMA_NO_NODE (-1)
8f012db2 16#define NUMA_NO_MEMBLK (-1)
4e25b257 17
1e5d8e1e
DW
18/* optionally keep NUMA memory info available post init */
19#ifdef CONFIG_NUMA_KEEP_MEMINFO
20#define __initdata_or_meminfo
21#else
22#define __initdata_or_meminfo __initdata
23#endif
24
b2ca916c 25#ifdef CONFIG_NUMA
a927bd6b
DW
26#include <asm/sparsemem.h>
27
5d30f92e 28/* Generic implementation available */
b1f099b1 29int numa_nearest_node(int node, unsigned int state);
a927bd6b
DW
30
31#ifndef memory_add_physaddr_to_nid
d7a73e3f 32int memory_add_physaddr_to_nid(u64 start);
a927bd6b 33#endif
d7a73e3f 34
a927bd6b 35#ifndef phys_to_target_node
d7a73e3f 36int phys_to_target_node(u64 start);
a927bd6b 37#endif
d7a73e3f 38
f9f67e5a 39int numa_fill_memblks(u64 start, u64 end);
d7a73e3f 40
a927bd6b 41#else /* !CONFIG_NUMA */
b1f099b1 42static inline int numa_nearest_node(int node, unsigned int state)
b2ca916c
DW
43{
44 return NUMA_NO_NODE;
45}
b1f099b1 46
a927bd6b
DW
47static inline int memory_add_physaddr_to_nid(u64 start)
48{
49 return 0;
50}
51static inline int phys_to_target_node(u64 start)
52{
53 return 0;
54}
b2ca916c
DW
55#endif
56
b1f099b1
YN
57#define numa_map_to_online_node(node) numa_nearest_node(node, N_ONLINE)
58
50468e43
JS
59#ifdef CONFIG_HAVE_ARCH_NODE_DEV_GROUP
60extern const struct attribute_group arch_node_dev_group;
61#endif
62
1da177e4 63#endif /* _LINUX_NUMA_H */