#include <linux/smp.h>
#include <linux/cpu.h>
#include <linux/slab.h>
#include <linux/cpumask.h>
#include <linux/percpu.h>
#include <xen/events.h>
#include <xen/hvc-console.h>
#include "xen-ops.h"
static DEFINE_PER_CPU(struct xen_common_irq, xen_resched_irq) = …;
static DEFINE_PER_CPU(struct xen_common_irq, xen_callfunc_irq) = …;
static DEFINE_PER_CPU(struct xen_common_irq, xen_callfuncsingle_irq) = …;
static DEFINE_PER_CPU(struct xen_common_irq, xen_debug_irq) = …;
static irqreturn_t xen_call_function_interrupt(int irq, void *dev_id);
static irqreturn_t xen_call_function_single_interrupt(int irq, void *dev_id);
static irqreturn_t xen_reschedule_interrupt(int irq, void *dev_id)
{ … }
void xen_smp_intr_free(unsigned int cpu)
{ … }
int xen_smp_intr_init(unsigned int cpu)
{ … }
void __init xen_smp_cpus_done(unsigned int max_cpus)
{ … }
void xen_smp_send_reschedule(int cpu)
{ … }
static void __xen_send_IPI_mask(const struct cpumask *mask,
int vector)
{ … }
void xen_smp_send_call_function_ipi(const struct cpumask *mask)
{ … }
void xen_smp_send_call_function_single_ipi(int cpu)
{ … }
static inline int xen_map_vector(int vector)
{ … }
void xen_send_IPI_mask(const struct cpumask *mask,
int vector)
{ … }
void xen_send_IPI_all(int vector)
{ … }
void xen_send_IPI_self(int vector)
{ … }
void xen_send_IPI_mask_allbutself(const struct cpumask *mask,
int vector)
{ … }
void xen_send_IPI_allbutself(int vector)
{ … }
static irqreturn_t xen_call_function_interrupt(int irq, void *dev_id)
{ … }
static irqreturn_t xen_call_function_single_interrupt(int irq, void *dev_id)
{ … }