aboutsummaryrefslogtreecommitdiffstats
path: root/xen/include/public/event_channel.h
diff options
context:
space:
mode:
authorcl349@freefall.cl.cam.ac.uk <cl349@freefall.cl.cam.ac.uk>2004-11-10 15:43:53 +0000
committercl349@freefall.cl.cam.ac.uk <cl349@freefall.cl.cam.ac.uk>2004-11-10 15:43:53 +0000
commitfba4123b517ad329e225a386a5afca59d25f1a59 (patch)
tree945956bd836f5f26a9b9ff4f65bb130436c35bd0 /xen/include/public/event_channel.h
parent7a5e8495786e141f9426932f0fec28a754b1ce35 (diff)
downloadxen-fba4123b517ad329e225a386a5afca59d25f1a59.tar.gz
xen-fba4123b517ad329e225a386a5afca59d25f1a59.tar.bz2
xen-fba4123b517ad329e225a386a5afca59d25f1a59.zip
bitkeeper revision 1.1159.1.401 (41923739R6r2c-dNxHPSxOagRn-R3g)
Setup cpu-local interrupt handline. Add support for ipi event channels.
Diffstat (limited to 'xen/include/public/event_channel.h')
-rw-r--r--xen/include/public/event_channel.h15
1 files changed, 15 insertions, 0 deletions
diff --git a/xen/include/public/event_channel.h b/xen/include/public/event_channel.h
index 284326d9b6..8d1025ff29 100644
--- a/xen/include/public/event_channel.h
+++ b/xen/include/public/event_channel.h
@@ -128,6 +128,7 @@ typedef struct {
#define EVTCHNSTAT_interdomain 2 /* Channel is connected to remote domain. */
#define EVTCHNSTAT_pirq 3 /* Channel is bound to a phys IRQ line. */
#define EVTCHNSTAT_virq 4 /* Channel is bound to a virtual IRQ line */
+#define EVTCHNSTAT_ipi 5 /* Channel is bound to a virtual IPI line */
u32 status; /* 8 */
union { /* 12 */
struct {
@@ -140,9 +141,22 @@ typedef struct {
} PACKED interdomain; /* EVTCHNSTAT_interdomain */
u32 pirq; /* EVTCHNSTAT_pirq */ /* 12 */
u32 virq; /* EVTCHNSTAT_virq */ /* 12 */
+ u32 ipi_edom; /* EVTCHNSTAT_ipi */ /* 12 */
} PACKED u;
} PACKED evtchn_status_t; /* 20 bytes */
+/*
+ * EVTCHNOP_bind_ipi: Bind a local event channel to receive events.
+ */
+#define EVTCHNOP_bind_ipi 7
+typedef struct {
+ /* IN parameters. */
+ u32 ipi_edom; /* 0 */
+ /* OUT parameters. */
+ u32 port; /* 4 */
+} PACKED evtchn_bind_ipi_t; /* 8 bytes */
+
+
typedef struct {
u32 cmd; /* EVTCHNOP_* */ /* 0 */
u32 __reserved; /* 4 */
@@ -154,6 +168,7 @@ typedef struct {
evtchn_close_t close;
evtchn_send_t send;
evtchn_status_t status;
+ evtchn_bind_ipi_t bind_ipi;
u8 __dummy[24];
} PACKED u;
} PACKED evtchn_op_t; /* 32 bytes */