xref: /openbmc/linux/arch/x86/xen/smp.h (revision 3cea11cd)
1 /* SPDX-License-Identifier: GPL-2.0 */
2 #ifndef _XEN_SMP_H
3 
4 #ifdef CONFIG_SMP
5 extern void xen_send_IPI_mask(const struct cpumask *mask,
6 			      int vector);
7 extern void xen_send_IPI_mask_allbutself(const struct cpumask *mask,
8 				int vector);
9 extern void xen_send_IPI_allbutself(int vector);
10 extern void xen_send_IPI_all(int vector);
11 extern void xen_send_IPI_self(int vector);
12 
13 extern int xen_smp_intr_init(unsigned int cpu);
14 extern void xen_smp_intr_free(unsigned int cpu);
15 int xen_smp_intr_init_pv(unsigned int cpu);
16 void xen_smp_intr_free_pv(unsigned int cpu);
17 
18 void xen_smp_cpus_done(unsigned int max_cpus);
19 
20 void xen_smp_send_reschedule(int cpu);
21 void xen_smp_send_call_function_ipi(const struct cpumask *mask);
22 void xen_smp_send_call_function_single_ipi(int cpu);
23 
24 struct xen_common_irq {
25 	int irq;
26 	char *name;
27 };
28 #else /* CONFIG_SMP */
29 
30 static inline int xen_smp_intr_init(unsigned int cpu)
31 {
32 	return 0;
33 }
34 static inline void xen_smp_intr_free(unsigned int cpu) {}
35 
36 static inline int xen_smp_intr_init_pv(unsigned int cpu)
37 {
38 	return 0;
39 }
40 static inline void xen_smp_intr_free_pv(unsigned int cpu) {}
41 #endif /* CONFIG_SMP */
42 
43 #endif
44