WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-changelog

[Xen-changelog] [xen-unstable] libxc: osdep: convert xc_evtchn_{pending,

To: xen-changelog@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-changelog] [xen-unstable] libxc: osdep: convert xc_evtchn_{pending, unmask}()
From: Xen patchbot-unstable <patchbot-unstable@xxxxxxxxxxxxxxxxxxx>
Date: Fri, 24 Dec 2010 15:45:59 -0800
Delivery-date: Fri, 24 Dec 2010 15:52:19 -0800
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-changelog-request@lists.xensource.com?subject=help>
List-id: BK change log <xen-changelog.lists.xensource.com>
List-post: <mailto:xen-changelog@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=unsubscribe>
Reply-to: xen-devel@xxxxxxxxxxxxxxxxxxx
Sender: xen-changelog-bounces@xxxxxxxxxxxxxxxxxxx
# HG changeset patch
# User Ian Campbell <ian.campbell@xxxxxxxxxx>
# Date 1291369007 0
# Node ID eb2c27908b3d0ecc4963fd49921cab40a02b5c98
# Parent  0ac7a4c596d17f46a313ce8f3d5fc8201aea63b2
libxc: osdep: convert xc_evtchn_{pending,unmask}()

Signed-off-by: Ian Campbell <ian.campbell@xxxxxxxxxx>
Signed-off-by: Ian Jackson <ian.jackson.citrix.com>
---
 tools/libxc/xc_evtchn.c    |   11 +++++++++++
 tools/libxc/xc_linux.c     |   20 +++++++++++++-------
 tools/libxc/xc_minios.c    |   21 ++++++++++++---------
 tools/libxc/xc_netbsd.c    |   18 +++++++++++-------
 tools/libxc/xc_solaris.c   |   18 +++++++++++-------
 tools/libxc/xenctrlosdep.h |    3 +++
 6 files changed, 61 insertions(+), 30 deletions(-)

diff -r 0ac7a4c596d1 -r eb2c27908b3d tools/libxc/xc_evtchn.c
--- a/tools/libxc/xc_evtchn.c   Fri Dec 03 09:36:47 2010 +0000
+++ b/tools/libxc/xc_evtchn.c   Fri Dec 03 09:36:47 2010 +0000
@@ -112,6 +112,17 @@ int xc_evtchn_unbind(xc_evtchn *xce, evt
     return xce->ops->u.evtchn.unbind(xce, xce->ops_handle, port);
 }
 
+evtchn_port_or_error_t
+xc_evtchn_pending(xc_evtchn *xce)
+{
+    return xce->ops->u.evtchn.pending(xce, xce->ops_handle);
+}
+
+int xc_evtchn_unmask(xc_evtchn *xce, evtchn_port_t port)
+{
+    return xce->ops->u.evtchn.unmask(xce, xce->ops_handle, port);
+}
+
 /*
  * Local variables:
  * mode: C
diff -r 0ac7a4c596d1 -r eb2c27908b3d tools/libxc/xc_linux.c
--- a/tools/libxc/xc_linux.c    Fri Dec 03 09:36:47 2010 +0000
+++ b/tools/libxc/xc_linux.c    Fri Dec 03 09:36:47 2010 +0000
@@ -420,20 +420,24 @@ static int linux_evtchn_unbind(xc_evtchn
     return ioctl(fd, IOCTL_EVTCHN_UNBIND, &unbind);
 }
 
-evtchn_port_or_error_t
-xc_evtchn_pending(xc_evtchn *xce)
-{
+static evtchn_port_or_error_t linux_evtchn_pending(xc_evtchn *xce, 
xc_osdep_handle h)
+{
+    int fd = (int)h;
     evtchn_port_t port;
 
-    if ( read_exact(xce->fd, (char *)&port, sizeof(port)) == -1 )
+    if ( read(fd, &port, sizeof(port)) != sizeof(port) )
         return -1;
 
     return port;
 }
 
-int xc_evtchn_unmask(xc_evtchn *xce, evtchn_port_t port)
-{
-    return write_exact(xce->fd, (char *)&port, sizeof(port));
+static int linux_evtchn_unmask(xc_evtchn *xce, xc_osdep_handle h, 
evtchn_port_t port)
+{
+    int fd = (int)h;
+
+    if ( write(fd, &port, sizeof(port)) != sizeof(port) )
+        return -1;
+    return 0;
 }
 
 static struct xc_osdep_ops linux_evtchn_ops = {
@@ -447,6 +451,8 @@ static struct xc_osdep_ops linux_evtchn_
         .bind_interdomain = &linux_evtchn_bind_interdomain,
         .bind_virq = &linux_evtchn_bind_virq,
         .unbind = &linux_evtchn_unbind,
+        .pending = &linux_evtchn_pending,
+        .unmask = &linux_evtchn_unmask,
     },
 };
 
diff -r 0ac7a4c596d1 -r eb2c27908b3d tools/libxc/xc_minios.c
--- a/tools/libxc/xc_minios.c   Fri Dec 03 09:36:47 2010 +0000
+++ b/tools/libxc/xc_minios.c   Fri Dec 03 09:36:47 2010 +0000
@@ -371,22 +371,23 @@ static evtchn_port_or_error_t minios_evt
     return port;
 }
 
-evtchn_port_or_error_t xc_evtchn_pending(xc_evtchn *xce)
-{
+static evtchn_port_or_error_t minios_evtchn_pending(xc_evtchn *xce, 
xc_osdep_handle h)
+{
+    int fd = (int)h;
     int i;
     unsigned long flags;
     evtchn_port_t ret = -1;
 
     local_irq_save(flags);
-    files[xce->fd].read = 0;
+    files[fd].read = 0;
     for (i = 0; i < MAX_EVTCHN_PORTS; i++) {
-        evtchn_port_t port = files[xce->fd].evtchn.ports[i].port;
-        if (port != -1 && files[xce->fd].evtchn.ports[i].pending) {
+        evtchn_port_t port = files[fd].evtchn.ports[i].port;
+        if (port != -1 && files[fd].evtchn.ports[i].pending) {
             if (ret == -1) {
                 ret = port;
-                files[xce->fd].evtchn.ports[i].pending = 0;
+                files[fd].evtchn.ports[i].pending = 0;
             } else {
-                files[xce->fd].read = 1;
+                files[fd].read = 1;
                 break;
             }
         }
@@ -395,7 +396,7 @@ evtchn_port_or_error_t xc_evtchn_pending
     return ret;
 }
 
-int xc_evtchn_unmask(xc_evtchn *xce, evtchn_port_t port)
+static int minios_evtchn_unmask(xc_evtchn *xce, xc_osdep_handle h, 
evtchn_port_t port)
 {
     unmask_evtchn(port);
     return 0;
@@ -412,7 +413,9 @@ static struct xc_osdep_ops minios_evtchn
         .bind_interdomain = &minios_evtchn_bind_interdomain,
         .bind_virq = &minios_evtchn_bind_virq,
         .unbind = &minios_evtchn_unbind,
-    },
+        .pending = &minios_evtchn_pending,
+        .unmask = &minios_evtchn_unmask,
+   },
 };
 
 /* Optionally flush file to disk and discard page cache */
diff -r 0ac7a4c596d1 -r eb2c27908b3d tools/libxc/xc_netbsd.c
--- a/tools/libxc/xc_netbsd.c   Fri Dec 03 09:36:47 2010 +0000
+++ b/tools/libxc/xc_netbsd.c   Fri Dec 03 09:36:47 2010 +0000
@@ -285,20 +285,22 @@ netbsd_evtchn_bind_virq(xc_evtchn *xce, 
        return bind.port;
 }
 
-evtchn_port_or_error_t
-xc_evtchn_pending(xc_evtchn *xce)
-{
+static evtchn_port_or_error_t
+netbsd_evtchn_pending(xc_evtchn *xce, xc_osdep_handle h)
+{
+    int fd = (int)h;
     evtchn_port_t port;
 
-    if ( read_exact(xce->fd, (char *)&port, sizeof(port)) == -1 )
+    if ( read_exact(fd, (char *)&port, sizeof(port)) == -1 )
         return -1;
 
     return port;
 }
 
-int xc_evtchn_unmask(xc_evtchn *xce, evtchn_port_t port)
-{
-    return write_exact(xce->fd, (char *)&port, sizeof(port));
+static int netbsd_evtchn_unmask(xc_evtchn *xce, xc_osdep_handle h, 
evtchn_port_t port)
+{
+    int fd = (int)h;
+    return write_exact(fd, (char *)&port, sizeof(port));
 }
 
 static struct xc_osdep_ops netbsd_evtchn_ops = {
@@ -312,6 +314,8 @@ static struct xc_osdep_ops netbsd_evtchn
          .bind_interdomain = &netbsd_evtchn_bind_interdomain,
          .bind_virq = &netbsd_evtchn_bind_virq,
          .unbind = &netbsd_evtchn_unbind,
+         .pending = &netbsd_evtchn_pending,
+         .unmask = &netbsd_evtchn_unmask,
     },
 };
 
diff -r 0ac7a4c596d1 -r eb2c27908b3d tools/libxc/xc_solaris.c
--- a/tools/libxc/xc_solaris.c  Fri Dec 03 09:36:47 2010 +0000
+++ b/tools/libxc/xc_solaris.c  Fri Dec 03 09:36:47 2010 +0000
@@ -262,20 +262,22 @@ static int solaris_evtchn_unbind(xc_evtc
     return ioctl(fd, IOCTL_EVTCHN_UNBIND, &unbind);
 }
 
-evtchn_port_or_error_t
-xc_evtchn_pending(xc_evtchn *xce)
-{
+static evtchn_port_or_error_t
+solaris_evtchn_pending(xc_evtchn *xce, xc_osdep_handle h)
+{
+    int fd = (int)h;
     evtchn_port_t port;
 
-    if ( read_exact(xce->fd, (char *)&port, sizeof(port)) == -1 )
+    if ( read_exact(fd, (char *)&port, sizeof(port)) == -1 )
         return -1;
 
     return port;
 }
 
-int xc_evtchn_unmask(xc_evtchn *xce, evtchn_port_t port)
-{
-    return write_exact(xce->fd, (char *)&port, sizeof(port));
+static int solaris_evtchn_unmask(xc_evtchn *xce, xc_osdep_handle 
h,evtchn_port_t port)
+{
+    int fd = (int)h;
+    return write_exact(fd, (char *)&port, sizeof(port));
 }
 
 static struct xc_osdep_ops solaris_evtchn_ops = {
@@ -289,6 +291,8 @@ static struct xc_osdep_ops solaris_evtch
         .bind_interdomain = &solaris_evtchn_bind_interdomain,
         .bind_virq = &solaris_evtchn_bind_virq,
         .unbind = &solaris_evtchn_unbind,
+        .pending = &solaris_evtchn_pending,
+        .unmask = &solaris_evtchn_unmask,
     },
 };
 
diff -r 0ac7a4c596d1 -r eb2c27908b3d tools/libxc/xenctrlosdep.h
--- a/tools/libxc/xenctrlosdep.h        Fri Dec 03 09:36:47 2010 +0000
+++ b/tools/libxc/xenctrlosdep.h        Fri Dec 03 09:36:47 2010 +0000
@@ -85,6 +85,9 @@ struct xc_osdep_ops
             evtchn_port_or_error_t (*bind_virq)(xc_evtchn *xce, 
xc_osdep_handle h, unsigned int virq);
 
             int (*unbind)(xc_evtchn *xce, xc_osdep_handle h, evtchn_port_t 
port);
+
+            evtchn_port_or_error_t (*pending)(xc_evtchn *xce, xc_osdep_handle 
h);
+            int (*unmask)(xc_evtchn *xce, xc_osdep_handle h, evtchn_port_t 
port);
         } evtchn;
     } u;
 };

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog

<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-changelog] [xen-unstable] libxc: osdep: convert xc_evtchn_{pending, unmask}(), Xen patchbot-unstable <=