Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0 */
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 /* CONFIG_SMP */
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 /* CONFIG_SMP */
0042 
0043 #endif