xref: /linux-6.15/include/linux/numa_memblks.h (revision 87482708)
1 /* SPDX-License-Identifier: GPL-2.0 */
2 #ifndef __NUMA_MEMBLKS_H
3 #define __NUMA_MEMBLKS_H
4 
5 #ifdef CONFIG_NUMA_MEMBLKS
6 #include <linux/types.h>
7 
8 #define NR_NODE_MEMBLKS		(MAX_NUMNODES * 2)
9 
10 struct numa_memblk {
11 	u64			start;
12 	u64			end;
13 	int			nid;
14 };
15 
16 struct numa_meminfo {
17 	int			nr_blks;
18 	struct numa_memblk	blk[NR_NODE_MEMBLKS];
19 };
20 
21 extern struct numa_meminfo numa_meminfo __initdata_or_meminfo;
22 extern struct numa_meminfo numa_reserved_meminfo __initdata_or_meminfo;
23 
24 int __init numa_add_memblk(int nodeid, u64 start, u64 end);
25 void __init numa_remove_memblk_from(int idx, struct numa_meminfo *mi);
26 
27 int __init numa_cleanup_meminfo(struct numa_meminfo *mi);
28 int __init numa_register_meminfo(struct numa_meminfo *mi);
29 
30 void __init numa_nodemask_from_meminfo(nodemask_t *nodemask,
31 				       const struct numa_meminfo *mi);
32 
33 #endif /* CONFIG_NUMA_MEMBLKS */
34 
35 #endif	/* __NUMA_MEMBLKS_H */
36