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