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 extern int numa_distance_cnt; 11 void __init numa_set_distance(int from, int to, int distance); 12 void __init numa_reset_distance(void); 13 14 struct numa_memblk { 15 u64 start; 16 u64 end; 17 int nid; 18 }; 19 20 struct numa_meminfo { 21 int nr_blks; 22 struct numa_memblk blk[NR_NODE_MEMBLKS]; 23 }; 24 25 extern struct numa_meminfo numa_meminfo __initdata_or_meminfo; 26 extern struct numa_meminfo numa_reserved_meminfo __initdata_or_meminfo; 27 28 int __init numa_add_memblk(int nodeid, u64 start, u64 end); 29 void __init numa_remove_memblk_from(int idx, struct numa_meminfo *mi); 30 31 int __init numa_cleanup_meminfo(struct numa_meminfo *mi); 32 int __init numa_register_meminfo(struct numa_meminfo *mi); 33 34 void __init numa_nodemask_from_meminfo(nodemask_t *nodemask, 35 const struct numa_meminfo *mi); 36 37 #endif /* CONFIG_NUMA_MEMBLKS */ 38 39 #endif /* __NUMA_MEMBLKS_H */ 40