blob: 8ebb6acca64a54ca47695cc4b57c63fca9b8823f [file] [log] [blame]
Ben Guthrof447d562012-04-21 00:11:04 +08001#ifndef _XEN_SMP_H
2
Boris Ostrovsky5fc509b2016-08-03 13:22:27 -04003#ifdef CONFIG_SMP
Ben Guthrof447d562012-04-21 00:11:04 +08004extern void xen_send_IPI_mask(const struct cpumask *mask,
5 int vector);
6extern void xen_send_IPI_mask_allbutself(const struct cpumask *mask,
7 int vector);
8extern void xen_send_IPI_allbutself(int vector);
Ben Guthrof447d562012-04-21 00:11:04 +08009extern void xen_send_IPI_all(int vector);
10extern void xen_send_IPI_self(int vector);
11
Boris Ostrovsky5fc509b2016-08-03 13:22:27 -040012extern int xen_smp_intr_init(unsigned int cpu);
13extern void xen_smp_intr_free(unsigned int cpu);
Vitaly Kuznetsov04e95762017-03-14 18:35:42 +010014int xen_smp_intr_init_pv(unsigned int cpu);
15void xen_smp_intr_free_pv(unsigned int cpu);
Boris Ostrovsky5fc509b2016-08-03 13:22:27 -040016
Vitaly Kuznetsova52482d2017-03-14 18:35:45 +010017void xen_smp_send_reschedule(int cpu);
18void xen_smp_send_call_function_ipi(const struct cpumask *mask);
19void xen_smp_send_call_function_single_ipi(int cpu);
Vitaly Kuznetsov83b96792017-03-14 18:35:46 +010020
21struct xen_common_irq {
22 int irq;
23 char *name;
24};
Boris Ostrovsky5fc509b2016-08-03 13:22:27 -040025#else /* CONFIG_SMP */
26
27static inline int xen_smp_intr_init(unsigned int cpu)
28{
29 return 0;
30}
31static inline void xen_smp_intr_free(unsigned int cpu) {}
Vitaly Kuznetsov04e95762017-03-14 18:35:42 +010032
33static inline int xen_smp_intr_init_pv(unsigned int cpu)
34{
35 return 0;
36}
37static inline void xen_smp_intr_free_pv(unsigned int cpu) {}
Boris Ostrovsky5fc509b2016-08-03 13:22:27 -040038#endif /* CONFIG_SMP */
39
Ben Guthrof447d562012-04-21 00:11:04 +080040#endif