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