home *** CD-ROM | disk | FTP | other *** search
/ PC Welt 2006 November (DVD) / PCWELT_11_2006.ISO / casper / filesystem.squashfs / usr / src / linux-headers-2.6.17-6 / include / asm-alpha / topology.h < prev    next >
Encoding:
C/C++ Source or Header  |  2006-08-11  |  835 b   |  49 lines

  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. #else /* CONFIG_NUMA */
  45. # include <asm-generic/topology.h>
  46. #endif /* !CONFIG_NUMA */
  47.  
  48. #endif /* _ASM_ALPHA_TOPOLOGY_H */
  49.