162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */ 262306a36Sopenharmony_ci#ifndef __X86_MM_NUMA_INTERNAL_H 362306a36Sopenharmony_ci#define __X86_MM_NUMA_INTERNAL_H 462306a36Sopenharmony_ci 562306a36Sopenharmony_ci#include <linux/types.h> 662306a36Sopenharmony_ci#include <asm/numa.h> 762306a36Sopenharmony_ci 862306a36Sopenharmony_cistruct numa_memblk { 962306a36Sopenharmony_ci u64 start; 1062306a36Sopenharmony_ci u64 end; 1162306a36Sopenharmony_ci int nid; 1262306a36Sopenharmony_ci}; 1362306a36Sopenharmony_ci 1462306a36Sopenharmony_cistruct numa_meminfo { 1562306a36Sopenharmony_ci int nr_blks; 1662306a36Sopenharmony_ci struct numa_memblk blk[NR_NODE_MEMBLKS]; 1762306a36Sopenharmony_ci}; 1862306a36Sopenharmony_ci 1962306a36Sopenharmony_civoid __init numa_remove_memblk_from(int idx, struct numa_meminfo *mi); 2062306a36Sopenharmony_ciint __init numa_cleanup_meminfo(struct numa_meminfo *mi); 2162306a36Sopenharmony_civoid __init numa_reset_distance(void); 2262306a36Sopenharmony_ci 2362306a36Sopenharmony_civoid __init x86_numa_init(void); 2462306a36Sopenharmony_ci 2562306a36Sopenharmony_ci#ifdef CONFIG_NUMA_EMU 2662306a36Sopenharmony_civoid __init numa_emulation(struct numa_meminfo *numa_meminfo, 2762306a36Sopenharmony_ci int numa_dist_cnt); 2862306a36Sopenharmony_ci#else 2962306a36Sopenharmony_cistatic inline void numa_emulation(struct numa_meminfo *numa_meminfo, 3062306a36Sopenharmony_ci int numa_dist_cnt) 3162306a36Sopenharmony_ci{ } 3262306a36Sopenharmony_ci#endif 3362306a36Sopenharmony_ci 3462306a36Sopenharmony_ci#endif /* __X86_MM_NUMA_INTERNAL_H */ 35