GNU Linux-libre 4.14.266-gnu1
[releases.git] / arch / x86 / mm / numa_internal.h
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 */