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 9 static 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 25 static inline cpumask_t node_to_cpumask(int node) 26 { 27 cpumask_t node_cpu_mask = CPU_MASK_NONE; 28 int cpu; 29 30 for_each_online_cpu(cpu) { 31 if (cpu_to_node(cpu) == node) 32 cpu_set(cpu, node_cpu_mask); 33 } 34 35 #ifdef DEBUG_NUMA 36 printk("node %d: cpu_mask: %016lx\n", node, node_cpu_mask); 37 #endif 38 39 return node_cpu_mask; 40 } 41 42 #define pcibus_to_cpumask(bus) (cpu_online_map) 43 44 #endif /* !CONFIG_NUMA */ 45 # include <asm-generic/topology.h> 46 47 #endif /* _ASM_ALPHA_TOPOLOGY_H */ 48