aboutsummaryrefslogtreecommitdiffstats
path: root/xen/include/public/event_channel.h
diff options
context:
space:
mode:
authorkaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk>2005-12-01 15:22:22 +0100
committerkaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk>2005-12-01 15:22:22 +0100
commit96428d33d9b6f28ce02902eae1a480b1d8f0e713 (patch)
tree2309ca46a0c07d0d9d84881b437d5e23ed8911fc /xen/include/public/event_channel.h
parent23f0fe07cd3c89f9bf913c9da173e4c0b64bb8b7 (diff)
downloadxen-96428d33d9b6f28ce02902eae1a480b1d8f0e713.tar.gz
xen-96428d33d9b6f28ce02902eae1a480b1d8f0e713.tar.bz2
xen-96428d33d9b6f28ce02902eae1a480b1d8f0e713.zip
Define explicit evtchn_port_t type (32 bits) and plumb up
to user space thru /dev/xen/evtchn. Signed-off-by: Keir Fraser <keir@xensource.com>
Diffstat (limited to 'xen/include/public/event_channel.h')
-rw-r--r--xen/include/public/event_channel.h32
1 files changed, 17 insertions, 15 deletions
diff --git a/xen/include/public/event_channel.h b/xen/include/public/event_channel.h
index 1de1057512..bb15a87b7d 100644
--- a/xen/include/public/event_channel.h
+++ b/xen/include/public/event_channel.h
@@ -9,6 +9,8 @@
#ifndef __XEN_PUBLIC_EVENT_CHANNEL_H__
#define __XEN_PUBLIC_EVENT_CHANNEL_H__
+typedef uint32_t evtchn_port_t;
+
/*
* EVTCHNOP_alloc_unbound: Allocate a port in domain <dom> and mark as
* accepting interdomain bindings from domain <remote_dom>. A fresh port
@@ -20,9 +22,9 @@
#define EVTCHNOP_alloc_unbound 6
typedef struct evtchn_alloc_unbound {
/* IN parameters */
- domid_t dom, remote_dom;
+ domid_t dom, remote_dom;
/* OUT parameters */
- uint32_t port;
+ evtchn_port_t port;
} evtchn_alloc_unbound_t;
/*
@@ -37,10 +39,10 @@ typedef struct evtchn_alloc_unbound {
#define EVTCHNOP_bind_interdomain 0
typedef struct evtchn_bind_interdomain {
/* IN parameters. */
- domid_t remote_dom;
- uint32_t remote_port;
+ domid_t remote_dom;
+ evtchn_port_t remote_port;
/* OUT parameters. */
- uint32_t local_port;
+ evtchn_port_t local_port;
} evtchn_bind_interdomain_t;
/*
@@ -57,7 +59,7 @@ typedef struct evtchn_bind_virq {
uint32_t virq;
uint32_t vcpu;
/* OUT parameters. */
- uint32_t port;
+ evtchn_port_t port;
} evtchn_bind_virq_t;
/*
@@ -73,7 +75,7 @@ typedef struct evtchn_bind_pirq {
#define BIND_PIRQ__WILL_SHARE 1
uint32_t flags; /* BIND_PIRQ__* */
/* OUT parameters. */
- uint32_t port;
+ evtchn_port_t port;
} evtchn_bind_pirq_t;
/*
@@ -86,7 +88,7 @@ typedef struct evtchn_bind_pirq {
typedef struct evtchn_bind_ipi {
uint32_t vcpu;
/* OUT parameters. */
- uint32_t port;
+ evtchn_port_t port;
} evtchn_bind_ipi_t;
/*
@@ -97,7 +99,7 @@ typedef struct evtchn_bind_ipi {
#define EVTCHNOP_close 3
typedef struct evtchn_close {
/* IN parameters. */
- uint32_t port;
+ evtchn_port_t port;
} evtchn_close_t;
/*
@@ -107,7 +109,7 @@ typedef struct evtchn_close {
#define EVTCHNOP_send 4
typedef struct evtchn_send {
/* IN parameters. */
- uint32_t port;
+ evtchn_port_t port;
} evtchn_send_t;
/*
@@ -122,7 +124,7 @@ typedef struct evtchn_send {
typedef struct evtchn_status {
/* IN parameters */
domid_t dom;
- uint32_t port;
+ evtchn_port_t port;
/* OUT parameters */
#define EVTCHNSTAT_closed 0 /* Channel is not in use. */
#define EVTCHNSTAT_unbound 1 /* Channel is waiting interdom connection.*/
@@ -134,11 +136,11 @@ typedef struct evtchn_status {
uint32_t vcpu; /* VCPU to which this channel is bound. */
union {
struct {
- domid_t dom;
+ domid_t dom;
} unbound; /* EVTCHNSTAT_unbound */
struct {
- domid_t dom;
- uint32_t port;
+ domid_t dom;
+ evtchn_port_t port;
} interdomain; /* EVTCHNSTAT_interdomain */
uint32_t pirq; /* EVTCHNSTAT_pirq */
uint32_t virq; /* EVTCHNSTAT_virq */
@@ -158,7 +160,7 @@ typedef struct evtchn_status {
#define EVTCHNOP_bind_vcpu 8
typedef struct evtchn_bind_vcpu {
/* IN parameters. */
- uint32_t port;
+ evtchn_port_t port;
uint32_t vcpu;
} evtchn_bind_vcpu_t;