aboutsummaryrefslogtreecommitdiffstats
path: root/tools/libxc
diff options
context:
space:
mode:
authorkaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk>2005-10-05 19:14:13 +0100
committerkaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk>2005-10-05 19:14:13 +0100
commit0f742e92ea9ea37b9883310e3d9f0ac04704813c (patch)
tree93bbcc2ca649094ecbd022f0dfe235bb67f37820 /tools/libxc
parenta00e0c297c90a31b6a1ba56d8e97fcee45918745 (diff)
downloadxen-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.c2
-rw-r--r--tools/libxc/xenctrl.h4
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);