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