brintos

brintos / linux-shallow public Read only

0
0
Text · 1.5 KiB · cfad6ce Raw
59 lines · c
1/* SPDX-License-Identifier: GPL-2.0 */2#ifndef __NUMA_MEMBLKS_H3#define __NUMA_MEMBLKS_H4 5#ifdef CONFIG_NUMA_MEMBLKS6#include <linux/types.h>7 8#define NR_NODE_MEMBLKS		(MAX_NUMNODES * 2)9 10void __init numa_set_distance(int from, int to, int distance);11void __init numa_reset_distance(void);12 13struct numa_memblk {14	u64			start;15	u64			end;16	int			nid;17};18 19struct numa_meminfo {20	int			nr_blks;21	struct numa_memblk	blk[NR_NODE_MEMBLKS];22};23 24int __init numa_add_memblk(int nodeid, u64 start, u64 end);25void __init numa_remove_memblk_from(int idx, struct numa_meminfo *mi);26 27int __init numa_cleanup_meminfo(struct numa_meminfo *mi);28 29int __init numa_memblks_init(int (*init_func)(void),30			     bool memblock_force_top_down);31 32#ifdef CONFIG_NUMA_EMU33int numa_emu_cmdline(char *str);34void __init numa_emu_update_cpu_to_node(int *emu_nid_to_phys,35					unsigned int nr_emu_nids);36u64 __init numa_emu_dma_end(void);37void __init numa_emulation(struct numa_meminfo *numa_meminfo,38			   int numa_dist_cnt);39#else40static inline void numa_emulation(struct numa_meminfo *numa_meminfo,41				  int numa_dist_cnt)42{ }43static inline int numa_emu_cmdline(char *str)44{45	return -EINVAL;46}47#endif /* CONFIG_NUMA_EMU */48 49#ifdef CONFIG_NUMA_KEEP_MEMINFO50extern int phys_to_target_node(u64 start);51#define phys_to_target_node phys_to_target_node52extern int memory_add_physaddr_to_nid(u64 start);53#define memory_add_physaddr_to_nid memory_add_physaddr_to_nid54#endif /* CONFIG_NUMA_KEEP_MEMINFO */55 56#endif /* CONFIG_NUMA_MEMBLKS */57 58#endif	/* __NUMA_MEMBLKS_H */59