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 */ 28 int numa_map_to_online_node(int node); 29 30 #ifndef memory_add_physaddr_to_nid memory_add_physaddr_to_nid(u64 start)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 phys_to_target_node(u64 start)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 */ numa_map_to_online_node(int node)47static inline int numa_map_to_online_node(int node) 48 { 49 return NUMA_NO_NODE; 50 } memory_add_physaddr_to_nid(u64 start)51static inline int memory_add_physaddr_to_nid(u64 start) 52 { 53 return 0; 54 } phys_to_target_node(u64 start)55static inline int phys_to_target_node(u64 start) 56 { 57 return 0; 58 } 59 #endif 60 61 #endif /* _LINUX_NUMA_H */ 62