44 lines
1.1 KiB
C
44 lines
1.1 KiB
C
|
/* SPDX-License-Identifier: GPL-2.0 */
|
||
|
#ifndef _XEN_SMP_H
|
||
|
|
||
|
#ifdef CONFIG_SMP
|
||
|
extern void xen_send_IPI_mask(const struct cpumask *mask,
|
||
|
int vector);
|
||
|
extern void xen_send_IPI_mask_allbutself(const struct cpumask *mask,
|
||
|
int vector);
|
||
|
extern void xen_send_IPI_allbutself(int vector);
|
||
|
extern void xen_send_IPI_all(int vector);
|
||
|
extern void xen_send_IPI_self(int vector);
|
||
|
|
||
|
extern int xen_smp_intr_init(unsigned int cpu);
|
||
|
extern void xen_smp_intr_free(unsigned int cpu);
|
||
|
int xen_smp_intr_init_pv(unsigned int cpu);
|
||
|
void xen_smp_intr_free_pv(unsigned int cpu);
|
||
|
|
||
|
void xen_smp_cpus_done(unsigned int max_cpus);
|
||
|
|
||
|
void xen_smp_send_reschedule(int cpu);
|
||
|
void xen_smp_send_call_function_ipi(const struct cpumask *mask);
|
||
|
void xen_smp_send_call_function_single_ipi(int cpu);
|
||
|
|
||
|
struct xen_common_irq {
|
||
|
int irq;
|
||
|
char *name;
|
||
|
};
|
||
|
#else /* CONFIG_SMP */
|
||
|
|
||
|
static inline int xen_smp_intr_init(unsigned int cpu)
|
||
|
{
|
||
|
return 0;
|
||
|
}
|
||
|
static inline void xen_smp_intr_free(unsigned int cpu) {}
|
||
|
|
||
|
static inline int xen_smp_intr_init_pv(unsigned int cpu)
|
||
|
{
|
||
|
return 0;
|
||
|
}
|
||
|
static inline void xen_smp_intr_free_pv(unsigned int cpu) {}
|
||
|
#endif /* CONFIG_SMP */
|
||
|
|
||
|
#endif
|