aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/include/asm/smp.h
diff options
context:
space:
mode:
authorIngo Molnar <mingo@elte.hu>2009-01-10 17:56:42 -0500
committerIngo Molnar <mingo@elte.hu>2009-01-10 17:56:42 -0500
commit1de8cd3cb9f61e854e743c7210df43db517d4832 (patch)
tree2b69c5ba5e4094037fa04d0fcb6c4537c222cde8 /arch/x86/include/asm/smp.h
parent1eb1b3b65dc3e3ffcc6a60e115c085c0c11c1077 (diff)
parent3d14bdad40315b54470cb7812293d14c8af2bf7d (diff)
Merge branch 'linus' into x86/cleanups
Diffstat (limited to 'arch/x86/include/asm/smp.h')
-rw-r--r--arch/x86/include/asm/smp.h32
1 files changed, 29 insertions, 3 deletions
diff --git a/arch/x86/include/asm/smp.h b/arch/x86/include/asm/smp.h
index 74ad9ef6ae02..1963e27673c9 100644
--- a/arch/x86/include/asm/smp.h
+++ b/arch/x86/include/asm/smp.h
@@ -18,15 +18,31 @@
18#include <asm/pda.h> 18#include <asm/pda.h>
19#include <asm/thread_info.h> 19#include <asm/thread_info.h>
20 20
21#ifdef CONFIG_X86_64
22
23extern cpumask_var_t cpu_callin_mask;
24extern cpumask_var_t cpu_callout_mask;
25extern cpumask_var_t cpu_initialized_mask;
26extern cpumask_var_t cpu_sibling_setup_mask;
27
28#else /* CONFIG_X86_32 */
29
30extern cpumask_t cpu_callin_map;
21extern cpumask_t cpu_callout_map; 31extern cpumask_t cpu_callout_map;
22extern cpumask_t cpu_initialized; 32extern cpumask_t cpu_initialized;
23extern cpumask_t cpu_callin_map; 33extern cpumask_t cpu_sibling_setup_map;
34
35#define cpu_callin_mask ((struct cpumask *)&cpu_callin_map)
36#define cpu_callout_mask ((struct cpumask *)&cpu_callout_map)
37#define cpu_initialized_mask ((struct cpumask *)&cpu_initialized)
38#define cpu_sibling_setup_mask ((struct cpumask *)&cpu_sibling_setup_map)
39
40#endif /* CONFIG_X86_32 */
24 41
25extern int __cpuinit get_local_pda(int cpu); 42extern int __cpuinit get_local_pda(int cpu);
26 43
27extern int smp_num_siblings; 44extern int smp_num_siblings;
28extern unsigned int num_processors; 45extern unsigned int num_processors;
29extern cpumask_t cpu_initialized;
30 46
31DECLARE_PER_CPU(cpumask_t, cpu_sibling_map); 47DECLARE_PER_CPU(cpumask_t, cpu_sibling_map);
32DECLARE_PER_CPU(cpumask_t, cpu_core_map); 48DECLARE_PER_CPU(cpumask_t, cpu_core_map);
@@ -35,6 +51,16 @@ DECLARE_PER_CPU(u16, cpu_llc_id);
35DECLARE_PER_CPU(int, cpu_number); 51DECLARE_PER_CPU(int, cpu_number);
36#endif 52#endif
37 53
54static inline struct cpumask *cpu_sibling_mask(int cpu)
55{
56 return &per_cpu(cpu_sibling_map, cpu);
57}
58
59static inline struct cpumask *cpu_core_mask(int cpu)
60{
61 return &per_cpu(cpu_core_map, cpu);
62}
63
38DECLARE_EARLY_PER_CPU(u16, x86_cpu_to_apicid); 64DECLARE_EARLY_PER_CPU(u16, x86_cpu_to_apicid);
39DECLARE_EARLY_PER_CPU(u16, x86_bios_cpu_apicid); 65DECLARE_EARLY_PER_CPU(u16, x86_bios_cpu_apicid);
40 66
@@ -144,7 +170,7 @@ void smp_store_cpu_info(int id);
144/* We don't mark CPUs online until __cpu_up(), so we need another measure */ 170/* We don't mark CPUs online until __cpu_up(), so we need another measure */
145static inline int num_booting_cpus(void) 171static inline int num_booting_cpus(void)
146{ 172{
147 return cpus_weight(cpu_callout_map); 173 return cpumask_weight(cpu_callout_mask);
148} 174}
149#endif /* CONFIG_SMP */ 175#endif /* CONFIG_SMP */
150 176