GNU Linux-libre 4.14.266-gnu1
[releases.git] / arch / x86 / xen / smp.h
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