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