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-tools

[Xen-tools] [PATCH] Add a size parameter to xs_read_watch

To: Rusty Russell <rusty@xxxxxxxxxxxxxxx>, Christian Limpach <Christian.Limpach@xxxxxxxxxxxx>, Xen Tools Developers <xen-tools@xxxxxxxxxxxxxxxxxxx>
Subject: [Xen-tools] [PATCH] Add a size parameter to xs_read_watch
From: Anthony Liguori <aliguori@xxxxxxxxxx>
Date: Sun, 18 Sep 2005 14:30:43 -0500
Delivery-date: Sun, 18 Sep 2005 19:28:21 +0000
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-tools-request@lists.xensource.com?subject=help>
List-id: Xen control tools developers <xen-tools.lists.xensource.com>
List-post: <mailto:xen-tools@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-tools>, <mailto:xen-tools-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-tools>, <mailto:xen-tools-request@lists.xensource.com?subject=unsubscribe>
Sender: xen-tools-bounces@xxxxxxxxxxxxxxxxxxx
User-agent: Mozilla Thunderbird 1.0.6 (X11/20050912)
Hi,

The attached patch adds an (optional) unsigned int * parameter to xs_read_watch to make it consistent with xs_read_directory. I've been experimenting with automated binding generators for libxenstore and returning a char ** with an implicit size makes things quite hairy.

Another solution would be to return a struct pair.

Regards,

Anthony Liguori
# HG changeset patch
# User anthony@xxxxxxxxxxxxxxxxxxxxx
# Node ID 6c8322f067904443641fe2e3b83199ad48792a8e
# Parent  61aef426bc350aeca268329482ef11f7547a7b70
Add an additional parameter to xs_read_watch to make it consistent with other
places where we return char **.

Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx>

diff -r 61aef426bc35 -r 6c8322f06790 tools/blktap/xenbus.c
--- a/tools/blktap/xenbus.c     Sun Sep 18 17:37:45 2005
+++ b/tools/blktap/xenbus.c     Sun Sep 18 19:23:46 2005
@@ -252,7 +252,7 @@
     struct xenbus_watch *w;
     int er;
 
-    res = xs_read_watch(h);
+    res = xs_read_watch(h, NULL);
     if (res == NULL) 
         return -EAGAIN; /* in O_NONBLOCK, read_watch returns 0... */
 
diff -r 61aef426bc35 -r 6c8322f06790 tools/console/daemon/io.c
--- a/tools/console/daemon/io.c Sun Sep 18 17:37:45 2005
+++ b/tools/console/daemon/io.c Sun Sep 18 19:23:46 2005
@@ -478,7 +478,7 @@
        int domid;
        struct domain *dom;
 
-       vec = xs_read_watch(xs);
+       vec = xs_read_watch(xs, NULL);
        if (!vec)
                return;
 
diff -r 61aef426bc35 -r 6c8322f06790 tools/python/xen/lowlevel/xs/xs.c
--- a/tools/python/xen/lowlevel/xs/xs.c Sun Sep 18 17:37:45 2005
+++ b/tools/python/xen/lowlevel/xs/xs.c Sun Sep 18 19:23:46 2005
@@ -477,7 +477,7 @@
     if (!PyArg_ParseTupleAndKeywords(args, kwds, arg_spec, kwd_spec))
         goto exit;
     Py_BEGIN_ALLOW_THREADS
-    xsval = xs_read_watch(xh);
+    xsval = xs_read_watch(xh, NULL);
     Py_END_ALLOW_THREADS
     if (!xsval) {
         PyErr_SetFromErrno(PyExc_RuntimeError);
diff -r 61aef426bc35 -r 6c8322f06790 tools/xenstore/xs.c
--- a/tools/xenstore/xs.c       Sun Sep 18 17:37:45 2005
+++ b/tools/xenstore/xs.c       Sun Sep 18 19:23:46 2005
@@ -464,7 +464,7 @@
  * Returns array of two pointers: path and token, or NULL.
  * Call free() after use.
  */
-char **xs_read_watch(struct xs_handle *h)
+char **xs_read_watch(struct xs_handle *h, unsigned int *num)
 {
        struct xsd_sockmsg msg;
        char **ret;
@@ -483,6 +483,9 @@
                return NULL;
        }
        ret[1] = ret[0] + strlen(ret[0]) + 1;
+
+       if (num) *num = 2;
+
        return ret;
 }
 
diff -r 61aef426bc35 -r 6c8322f06790 tools/xenstore/xs.h
--- a/tools/xenstore/xs.h       Sun Sep 18 17:37:45 2005
+++ b/tools/xenstore/xs.h       Sun Sep 18 19:23:46 2005
@@ -94,7 +94,7 @@
  * Returns array of two pointers: path and token, or NULL.
  * Call free() after use.
  */
-char **xs_read_watch(struct xs_handle *h);
+char **xs_read_watch(struct xs_handle *h, unsigned int *num);
 
 /* Acknowledge watch on node.  Watches must be acknowledged before
  * any other watches can be read.
diff -r 61aef426bc35 -r 6c8322f06790 tools/xenstore/xs_test.c
--- a/tools/xenstore/xs_test.c  Sun Sep 18 17:37:45 2005
+++ b/tools/xenstore/xs_test.c  Sun Sep 18 19:23:46 2005
@@ -551,7 +551,7 @@
                set_timeout();
        }
 
-       vec = xs_read_watch(handles[handle]);
+       vec = xs_read_watch(handles[handle], NULL);
        if (!vec) {
                failed(handle);
                return;
_______________________________________________
Xen-tools mailing list
Xen-tools@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-tools
<Prev in Thread] Current Thread [Next in Thread>