linux/arch/alpha/include/asm/topology.h
<<
>>
Prefs
   1/* SPDX-License-Identifier: GPL-2.0 */
   2#ifndef _ASM_ALPHA_TOPOLOGY_H
   3#define _ASM_ALPHA_TOPOLOGY_H
   4
   5#include <linux/smp.h>
   6#include <linux/threads.h>
   7#include <asm/machvec.h>
   8
   9#ifdef CONFIG_NUMA
  10static inline int cpu_to_node(int cpu)
  11{
  12        int node;
  13        
  14        if (!alpha_mv.cpuid_to_nid)
  15                return 0;
  16
  17        node = alpha_mv.cpuid_to_nid(cpu);
  18
  19#ifdef DEBUG_NUMA
  20        BUG_ON(node < 0);
  21#endif
  22
  23        return node;
  24}
  25
  26extern struct cpumask node_to_cpumask_map[];
  27/* FIXME: This is dumb, recalculating every time.  But simple. */
  28static const struct cpumask *cpumask_of_node(int node)
  29{
  30        int cpu;
  31
  32        if (node == -1)
  33                return cpu_all_mask;
  34
  35        cpumask_clear(&node_to_cpumask_map[node]);
  36
  37        for_each_online_cpu(cpu) {
  38                if (cpu_to_node(cpu) == node)
  39                        cpumask_set_cpu(cpu, node_to_cpumask_map[node]);
  40        }
  41
  42        return &node_to_cpumask_map[node];
  43}
  44
  45#define cpumask_of_pcibus(bus)  (cpu_online_mask)
  46
  47#endif /* !CONFIG_NUMA */
  48# include <asm-generic/topology.h>
  49
  50#endif /* _ASM_ALPHA_TOPOLOGY_H */
  51