diff options
author | Ian Campbell <ian.campbell@citrix.com> | 2010-12-02 12:33:01 +0000 |
---|---|---|
committer | Ian Campbell <ian.campbell@citrix.com> | 2010-12-02 12:33:01 +0000 |
commit | 77fcd869a7beb55857198b8d6cbffe63b33cac20 (patch) | |
tree | d287bebfcf6c4875211b535388359028fe1cba91 | |
parent | df402317ce830040efd089ac6a36f30a075d939d (diff) | |
download | xen-77fcd869a7beb55857198b8d6cbffe63b33cac20.tar.gz xen-77fcd869a7beb55857198b8d6cbffe63b33cac20.tar.bz2 xen-77fcd869a7beb55857198b8d6cbffe63b33cac20.zip |
libxc: NetBSD: implement xc_evtchn_bind_unbound_port.
Doesn't actually appear to be used anywhere but is defined for other
OSes.
The NetBSD evtchn.h contains comments "Return allocated port" for
several ioctls which currently return the allocated port as a member
of the argument structure and not as the ioctl return value (I think
this is a cut and paste error).
Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Acked-by: Christoph Egger <Christoph.Egger@amd.com>
committer: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-rw-r--r-- | tools/include/xen-sys/NetBSD/evtchn.h | 3 | ||||
-rw-r--r-- | tools/libxc/xc_netbsd.c | 15 |
2 files changed, 15 insertions, 3 deletions
diff --git a/tools/include/xen-sys/NetBSD/evtchn.h b/tools/include/xen-sys/NetBSD/evtchn.h index dc30e815dc..2d8a1f9164 100644 --- a/tools/include/xen-sys/NetBSD/evtchn.h +++ b/tools/include/xen-sys/NetBSD/evtchn.h @@ -33,7 +33,6 @@ /* * Bind a fresh port to VIRQ @virq. - * Return allocated port. */ #define IOCTL_EVTCHN_BIND_VIRQ \ _IOWR('E', 4, struct ioctl_evtchn_bind_virq) @@ -44,7 +43,6 @@ struct ioctl_evtchn_bind_virq { /* * Bind a fresh port to remote <@remote_domain, @remote_port>. - * Return allocated port. */ #define IOCTL_EVTCHN_BIND_INTERDOMAIN \ _IOWR('E', 5, struct ioctl_evtchn_bind_interdomain) @@ -55,7 +53,6 @@ struct ioctl_evtchn_bind_interdomain { /* * Allocate a fresh port for binding to @remote_domain. - * Return allocated port. */ #define IOCTL_EVTCHN_BIND_UNBOUND_PORT \ _IOWR('E', 6, struct ioctl_evtchn_bind_unbound_port) diff --git a/tools/libxc/xc_netbsd.c b/tools/libxc/xc_netbsd.c index 5958faaf6b..47f84853ed 100644 --- a/tools/libxc/xc_netbsd.c +++ b/tools/libxc/xc_netbsd.c @@ -206,6 +206,21 @@ int xc_evtchn_notify(int xce_handle, evtchn_port_t port) } evtchn_port_or_error_t +xc_evtchn_bind_unbound_port(int xce_handle, int domid) +{ + struct ioctl_evtchn_bind_unbound_port bind; + int ret; + + bind.remote_domain = domid; + + ret = ioctl(xce_handle, IOCTL_EVTCHN_BIND_UNBOUND_PORT, &bind); + if (ret == 0) + return bind.port; + else + return -1; +} + +evtchn_port_or_error_t xc_evtchn_bind_interdomain(int xce_handle, int domid, evtchn_port_t remote_port) { |