diff options
author | kaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk> | 2005-10-05 19:14:13 +0100 |
---|---|---|
committer | kaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk> | 2005-10-05 19:14:13 +0100 |
commit | 0f742e92ea9ea37b9883310e3d9f0ac04704813c (patch) | |
tree | 93bbcc2ca649094ecbd022f0dfe235bb67f37820 /tools/libxc | |
parent | a00e0c297c90a31b6a1ba56d8e97fcee45918745 (diff) | |
download | xen-0f742e92ea9ea37b9883310e3d9f0ac04704813c.tar.gz xen-0f742e92ea9ea37b9883310e3d9f0ac04704813c.tar.bz2 xen-0f742e92ea9ea37b9883310e3d9f0ac04704813c.zip |
EVTCHNOP_alloc_unbound can allocate a port in an arbitrary
domain (only if the caller is sufficiently privileged).
Signed-off-by: Keir Fraser <keir@xensource.com>
Diffstat (limited to 'tools/libxc')
-rw-r--r-- | tools/libxc/xc_evtchn.c | 2 | ||||
-rw-r--r-- | tools/libxc/xenctrl.h | 4 |
2 files changed, 5 insertions, 1 deletions
diff --git a/tools/libxc/xc_evtchn.c b/tools/libxc/xc_evtchn.c index f7698d3541..3bdacf36a3 100644 --- a/tools/libxc/xc_evtchn.c +++ b/tools/libxc/xc_evtchn.c @@ -33,6 +33,7 @@ static int do_evtchn_op(int xc_handle, evtchn_op_t *op) int xc_evtchn_alloc_unbound(int xc_handle, + u32 remote_dom, u32 dom, int *port) { @@ -40,6 +41,7 @@ int xc_evtchn_alloc_unbound(int xc_handle, int rc; op.cmd = EVTCHNOP_alloc_unbound; + op.u.alloc_unbound.remote_dom = (domid_t)remote_dom; op.u.alloc_unbound.dom = (domid_t)dom; op.u.alloc_unbound.port = (port != NULL) ? *port : 0; diff --git a/tools/libxc/xenctrl.h b/tools/libxc/xenctrl.h index 2fe9bee750..3e74c62fa0 100644 --- a/tools/libxc/xenctrl.h +++ b/tools/libxc/xenctrl.h @@ -306,13 +306,15 @@ typedef evtchn_status_t xc_evtchn_status_t; * well-known port within a domain to receive events on. * * @parm xc_handle a handle to an open hypervisor interface - * @parm dom the ID of the domain. This maybe DOMID_SELF + * @parm remote_dom the ID of the domain who will later bind + * @parm dom the ID of the local domain (the 'allocatee') * @parm port a pointer to a port. This is an in/out parameter. If *port is * 0, then a new port will be assigned, if port is > 0 then that * port is allocated if the port is unallocated. * @return 0 on success, -1 on failure */ int xc_evtchn_alloc_unbound(int xc_handle, + u32 remote_dom, u32 dom, int *port); |