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-powerpc / topology.h < prev    next >
Encoding:
C/C++ Source or Header  |  2006-08-11  |  1.9 KB  |  93 lines

  1. #ifndef _ASM_POWERPC_TOPOLOGY_H
  2. #define _ASM_POWERPC_TOPOLOGY_H
  3. #ifdef __KERNEL__
  4.  
  5.  
  6. struct sys_device;
  7. struct device_node;
  8.  
  9. #ifdef CONFIG_NUMA
  10.  
  11. #include <asm/mmzone.h>
  12.  
  13. static inline int cpu_to_node(int cpu)
  14. {
  15.     return numa_cpu_lookup_table[cpu];
  16. }
  17.  
  18. #define parent_node(node)    (node)
  19.  
  20. static inline cpumask_t node_to_cpumask(int node)
  21. {
  22.     return numa_cpumask_lookup_table[node];
  23. }
  24.  
  25. static inline int node_to_first_cpu(int node)
  26. {
  27.     cpumask_t tmp;
  28.     tmp = node_to_cpumask(node);
  29.     return first_cpu(tmp);
  30. }
  31.  
  32. int of_node_to_nid(struct device_node *device);
  33.  
  34. #define pcibus_to_node(node)    (-1)
  35. #define pcibus_to_cpumask(bus)    (cpu_online_map)
  36.  
  37. /* sched_domains SD_NODE_INIT for PPC64 machines */
  38. #define SD_NODE_INIT (struct sched_domain) {        \
  39.     .span            = CPU_MASK_NONE,    \
  40.     .parent            = NULL,            \
  41.     .groups            = NULL,            \
  42.     .min_interval        = 8,            \
  43.     .max_interval        = 32,            \
  44.     .busy_factor        = 32,            \
  45.     .imbalance_pct        = 125,            \
  46.     .cache_nice_tries    = 1,            \
  47.     .per_cpu_gain        = 100,            \
  48.     .busy_idx        = 3,            \
  49.     .idle_idx        = 1,            \
  50.     .newidle_idx        = 2,            \
  51.     .wake_idx        = 1,            \
  52.     .flags            = SD_LOAD_BALANCE    \
  53.                 | SD_BALANCE_EXEC    \
  54.                 | SD_BALANCE_NEWIDLE    \
  55.                 | SD_WAKE_IDLE        \
  56.                 | SD_WAKE_BALANCE,    \
  57.     .last_balance        = jiffies,        \
  58.     .balance_interval    = 1,            \
  59.     .nr_balance_failed    = 0,            \
  60. }
  61.  
  62. extern void __init dump_numa_cpu_topology(void);
  63.  
  64. extern int sysfs_add_device_to_node(struct sys_device *dev, int nid);
  65. extern void sysfs_remove_device_from_node(struct sys_device *dev, int nid);
  66.  
  67. #else
  68.  
  69. static inline int of_node_to_nid(struct device_node *device)
  70. {
  71.     return 0;
  72. }
  73.  
  74. static inline void dump_numa_cpu_topology(void) {}
  75.  
  76. static inline int sysfs_add_device_to_node(struct sys_device *dev, int nid)
  77. {
  78.     return 0;
  79. }
  80.  
  81. static inline void sysfs_remove_device_from_node(struct sys_device *dev,
  82.                         int nid)
  83. {
  84. }
  85.  
  86.  
  87. #include <asm-generic/topology.h>
  88.  
  89. #endif /* CONFIG_NUMA */
  90.  
  91. #endif /* __KERNEL__ */
  92. #endif    /* _ASM_POWERPC_TOPOLOGY_H */
  93.