xref: /OK3568_Linux_fs/kernel/arch/x86/xen/smp.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
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*4882a593Smuzhiyun static 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*4882a593Smuzhiyun static inline void xen_smp_intr_free(unsigned int cpu) {}
35*4882a593Smuzhiyun 
xen_smp_intr_init_pv(unsigned int cpu)36*4882a593Smuzhiyun static 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*4882a593Smuzhiyun static inline void xen_smp_intr_free_pv(unsigned int cpu) {}
41*4882a593Smuzhiyun #endif /* CONFIG_SMP */
42*4882a593Smuzhiyun 
43*4882a593Smuzhiyun #endif
44