numa.h (1382B)
1/* SPDX-License-Identifier: GPL-2.0 */ 2#ifndef _LINUX_NUMA_H 3#define _LINUX_NUMA_H 4#include <linux/types.h> 5 6#ifdef CONFIG_NODES_SHIFT 7#define NODES_SHIFT CONFIG_NODES_SHIFT 8#else 9#define NODES_SHIFT 0 10#endif 11 12#define MAX_NUMNODES (1 << NODES_SHIFT) 13 14#define NUMA_NO_NODE (-1) 15 16/* optionally keep NUMA memory info available post init */ 17#ifdef CONFIG_NUMA_KEEP_MEMINFO 18#define __initdata_or_meminfo 19#else 20#define __initdata_or_meminfo __initdata 21#endif 22 23#ifdef CONFIG_NUMA 24#include <linux/printk.h> 25#include <asm/sparsemem.h> 26 27/* Generic implementation available */ 28int numa_map_to_online_node(int node); 29 30#ifndef memory_add_physaddr_to_nid 31static inline int memory_add_physaddr_to_nid(u64 start) 32{ 33 pr_info_once("Unknown online node for memory at 0x%llx, assuming node 0\n", 34 start); 35 return 0; 36} 37#endif 38#ifndef phys_to_target_node 39static inline int phys_to_target_node(u64 start) 40{ 41 pr_info_once("Unknown target node for memory at 0x%llx, assuming node 0\n", 42 start); 43 return 0; 44} 45#endif 46#else /* !CONFIG_NUMA */ 47static inline int numa_map_to_online_node(int node) 48{ 49 return NUMA_NO_NODE; 50} 51static inline int memory_add_physaddr_to_nid(u64 start) 52{ 53 return 0; 54} 55static inline int phys_to_target_node(u64 start) 56{ 57 return 0; 58} 59#endif 60 61#ifdef CONFIG_HAVE_ARCH_NODE_DEV_GROUP 62extern const struct attribute_group arch_node_dev_group; 63#endif 64 65#endif /* _LINUX_NUMA_H */