aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/xen/events.h27
1 files changed, 23 insertions, 4 deletions
diff --git a/include/xen/events.h b/include/xen/events.h
index 77f71c906823..7abe4ddfac54 100644
--- a/include/xen/events.h
+++ b/include/xen/events.h
@@ -1,15 +1,32 @@
1#ifndef _XEN_EVENTS_H 1#ifndef _XEN_EVENTS_H
2#define _XEN_EVENTS_H 2#define _XEN_EVENTS_H
3 3
4#include <linux/irq.h> 4#include <linux/interrupt.h>
5
6#include <xen/interface/event_channel.h>
7#include <asm/xen/hypercall.h>
8
9enum ipi_vector {
10 XEN_RESCHEDULE_VECTOR,
11 XEN_CALL_FUNCTION_VECTOR,
12
13 XEN_NR_IPIS,
14};
5 15
6int bind_evtchn_to_irqhandler(unsigned int evtchn, 16int bind_evtchn_to_irqhandler(unsigned int evtchn,
7 irqreturn_t (*handler)(int, void *), 17 irq_handler_t handler,
8 unsigned long irqflags, const char *devname, 18 unsigned long irqflags, const char *devname,
9 void *dev_id); 19 void *dev_id);
10int bind_virq_to_irqhandler(unsigned int virq, unsigned int cpu, 20int bind_virq_to_irqhandler(unsigned int virq, unsigned int cpu,
11 irqreturn_t (*handler)(int, void *), 21 irq_handler_t handler,
12 unsigned long irqflags, const char *devname, void *dev_id); 22 unsigned long irqflags, const char *devname,
23 void *dev_id);
24int bind_ipi_to_irqhandler(enum ipi_vector ipi,
25 unsigned int cpu,
26 irq_handler_t handler,
27 unsigned long irqflags,
28 const char *devname,
29 void *dev_id);
13 30
14/* 31/*
15 * Common unbind function for all event sources. Takes IRQ to unbind from. 32 * Common unbind function for all event sources. Takes IRQ to unbind from.
@@ -18,6 +35,8 @@ int bind_virq_to_irqhandler(unsigned int virq, unsigned int cpu,
18 */ 35 */
19void unbind_from_irqhandler(unsigned int irq, void *dev_id); 36void unbind_from_irqhandler(unsigned int irq, void *dev_id);
20 37
38void xen_send_IPI_one(unsigned int cpu, enum ipi_vector vector);
39
21static inline void notify_remote_via_evtchn(int port) 40static inline void notify_remote_via_evtchn(int port)
22{ 41{
23 struct evtchn_send send = { .port = port }; 42 struct evtchn_send send = { .port = port };