xref: /linux/arch/x86/mm/numa_internal.h (revision 24bce201d79807b668bf9d9e0aca801c5c0d5f78)
1 /* SPDX-License-Identifier: GPL-2.0 */
2 #ifndef __X86_MM_NUMA_INTERNAL_H
3 #define __X86_MM_NUMA_INTERNAL_H
4 
5 #include <linux/types.h>
6 #include <asm/numa.h>
7 
8 struct numa_memblk {
9 	u64			start;
10 	u64			end;
11 	int			nid;
12 };
13 
14 struct numa_meminfo {
15 	int			nr_blks;
16 	struct numa_memblk	blk[NR_NODE_MEMBLKS];
17 };
18 
19 void __init numa_remove_memblk_from(int idx, struct numa_meminfo *mi);
20 int __init numa_cleanup_meminfo(struct numa_meminfo *mi);
21 void __init numa_reset_distance(void);
22 
23 void __init x86_numa_init(void);
24 
25 #ifdef CONFIG_NUMA_EMU
26 void __init numa_emulation(struct numa_meminfo *numa_meminfo,
27 			   int numa_dist_cnt);
28 #else
29 static inline void numa_emulation(struct numa_meminfo *numa_meminfo,
30 				  int numa_dist_cnt)
31 { }
32 #endif
33 
34 #endif	/* __X86_MM_NUMA_INTERNAL_H */
35