1 #ifndef __ASM_SMP_H
2 #define __ASM_SMP_H
3 
4 #ifndef __ASSEMBLY__
5 #include <xen/percpu.h>
6 #include <xen/cpumask.h>
7 #include <asm/current.h>
8 #endif
9 
10 extern struct init_info init_data;
11 extern unsigned long smp_up_cpu;
12 
13 DECLARE_PER_CPU(cpumask_var_t, cpu_sibling_mask);
14 DECLARE_PER_CPU(cpumask_var_t, cpu_core_mask);
15 
16 extern void noreturn stop_cpu(void);
17 
18 extern int arch_smp_init(void);
19 
20 struct dt_device_node;
21 
22 extern int arch_cpu_init(int cpu, struct dt_device_node *dn);
23 extern int arch_cpu_up(int cpu);
24 extern void arch_cpu_up_finish(void);
25 
26 int cpu_up_send_sgi(int cpu);
27 
28 /* Secondary CPU entry point */
29 extern void init_secondary(void);
30 
31 extern void smp_init_cpus(void);
32 extern unsigned int smp_get_max_cpus(void);
33 
34 #define cpu_physical_id(cpu) cpu_logical_map(cpu)
35 
36 #endif
37 
38 /*
39  * Local variables:
40  * mode: C
41  * c-file-style: "BSD"
42  * c-basic-offset: 4
43  * indent-tabs-mode: nil
44  * End:
45  */
46