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