linux/include/linux/numa.h
<<
>>
Prefs
   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#endif /* _LINUX_NUMA_H */
  62