1 #include <linux/cpumask.h>
2 #include <linux/interrupt.h>
8 #include <xen/evtchn.h>
10 void xen_send_IPI_mask_allbutself(const struct cpumask *cpumask, int vector)
12 unsigned int cpu, this_cpu = smp_processor_id();
14 WARN_ON(!cpumask_subset(cpumask, cpu_online_mask));
15 for_each_cpu_and(cpu, cpumask, cpu_online_mask)
17 notify_remote_via_ipi(vector, cpu);
20 void xen_send_IPI_mask(const struct cpumask *cpumask, int vector)
24 WARN_ON(!cpumask_subset(cpumask, cpu_online_mask));
25 for_each_cpu_and(cpu, cpumask, cpu_online_mask)
26 notify_remote_via_ipi(vector, cpu);
29 void xen_send_IPI_allbutself(int vector)
31 xen_send_IPI_mask_allbutself(cpu_online_mask, vector);
34 void xen_send_IPI_all(int vector)
36 xen_send_IPI_mask(cpu_online_mask, vector);
39 void xen_send_IPI_self(int vector)
41 notify_remote_via_ipi(vector, smp_processor_id());