0001
0002 #ifndef _XEN_SMP_H
0003
0004 #ifdef CONFIG_SMP
0005 extern void xen_send_IPI_mask(const struct cpumask *mask,
0006 int vector);
0007 extern void xen_send_IPI_mask_allbutself(const struct cpumask *mask,
0008 int vector);
0009 extern void xen_send_IPI_allbutself(int vector);
0010 extern void xen_send_IPI_all(int vector);
0011 extern void xen_send_IPI_self(int vector);
0012
0013 extern int xen_smp_intr_init(unsigned int cpu);
0014 extern void xen_smp_intr_free(unsigned int cpu);
0015 int xen_smp_intr_init_pv(unsigned int cpu);
0016 void xen_smp_intr_free_pv(unsigned int cpu);
0017
0018 void xen_smp_cpus_done(unsigned int max_cpus);
0019
0020 void xen_smp_send_reschedule(int cpu);
0021 void xen_smp_send_call_function_ipi(const struct cpumask *mask);
0022 void xen_smp_send_call_function_single_ipi(int cpu);
0023
0024 struct xen_common_irq {
0025 int irq;
0026 char *name;
0027 };
0028 #else
0029
0030 static inline int xen_smp_intr_init(unsigned int cpu)
0031 {
0032 return 0;
0033 }
0034 static inline void xen_smp_intr_free(unsigned int cpu) {}
0035
0036 static inline int xen_smp_intr_init_pv(unsigned int cpu)
0037 {
0038 return 0;
0039 }
0040 static inline void xen_smp_intr_free_pv(unsigned int cpu) {}
0041 #endif
0042
0043 #endif