Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

at v2.6.30 117 lines 2.7 kB view raw
1#ifndef _ASM_POWERPC_TOPOLOGY_H 2#define _ASM_POWERPC_TOPOLOGY_H 3#ifdef __KERNEL__ 4 5 6struct sys_device; 7struct device_node; 8 9#ifdef CONFIG_NUMA 10 11#include <asm/mmzone.h> 12 13static inline int cpu_to_node(int cpu) 14{ 15 return numa_cpu_lookup_table[cpu]; 16} 17 18#define parent_node(node) (node) 19 20static inline cpumask_t node_to_cpumask(int node) 21{ 22 return numa_cpumask_lookup_table[node]; 23} 24 25#define cpumask_of_node(node) (&numa_cpumask_lookup_table[node]) 26 27int of_node_to_nid(struct device_node *device); 28 29struct pci_bus; 30#ifdef CONFIG_PCI 31extern int pcibus_to_node(struct pci_bus *bus); 32#else 33static inline int pcibus_to_node(struct pci_bus *bus) 34{ 35 return -1; 36} 37#endif 38 39#define pcibus_to_cpumask(bus) (pcibus_to_node(bus) == -1 ? \ 40 CPU_MASK_ALL : \ 41 node_to_cpumask(pcibus_to_node(bus)) \ 42 ) 43 44#define cpumask_of_pcibus(bus) (pcibus_to_node(bus) == -1 ? \ 45 cpu_all_mask : \ 46 cpumask_of_node(pcibus_to_node(bus))) 47 48/* sched_domains SD_NODE_INIT for PPC64 machines */ 49#define SD_NODE_INIT (struct sched_domain) { \ 50 .parent = NULL, \ 51 .child = NULL, \ 52 .groups = NULL, \ 53 .min_interval = 8, \ 54 .max_interval = 32, \ 55 .busy_factor = 32, \ 56 .imbalance_pct = 125, \ 57 .cache_nice_tries = 1, \ 58 .busy_idx = 3, \ 59 .idle_idx = 1, \ 60 .newidle_idx = 2, \ 61 .wake_idx = 1, \ 62 .flags = SD_LOAD_BALANCE \ 63 | SD_BALANCE_EXEC \ 64 | SD_BALANCE_NEWIDLE \ 65 | SD_WAKE_IDLE \ 66 | SD_SERIALIZE \ 67 | SD_WAKE_BALANCE, \ 68 .last_balance = jiffies, \ 69 .balance_interval = 1, \ 70 .nr_balance_failed = 0, \ 71} 72 73extern void __init dump_numa_cpu_topology(void); 74 75extern int sysfs_add_device_to_node(struct sys_device *dev, int nid); 76extern void sysfs_remove_device_from_node(struct sys_device *dev, int nid); 77 78#else 79 80static inline int of_node_to_nid(struct device_node *device) 81{ 82 return 0; 83} 84 85static inline void dump_numa_cpu_topology(void) {} 86 87static inline int sysfs_add_device_to_node(struct sys_device *dev, int nid) 88{ 89 return 0; 90} 91 92static inline void sysfs_remove_device_from_node(struct sys_device *dev, 93 int nid) 94{ 95} 96 97#endif /* CONFIG_NUMA */ 98 99#include <asm-generic/topology.h> 100 101#ifdef CONFIG_SMP 102#include <asm/cputable.h> 103#define smt_capable() (cpu_has_feature(CPU_FTR_SMT)) 104 105#ifdef CONFIG_PPC64 106#include <asm/smp.h> 107 108#define topology_thread_siblings(cpu) (per_cpu(cpu_sibling_map, cpu)) 109#define topology_core_siblings(cpu) (per_cpu(cpu_core_map, cpu)) 110#define topology_thread_cpumask(cpu) (&per_cpu(cpu_sibling_map, cpu)) 111#define topology_core_cpumask(cpu) (&per_cpu(cpu_core_map, cpu)) 112#define topology_core_id(cpu) (cpu_to_core_id(cpu)) 113#endif 114#endif 115 116#endif /* __KERNEL__ */ 117#endif /* _ASM_POWERPC_TOPOLOGY_H */