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] Simplify code by making in and out pointers internal to

To: xen-changelog@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-changelog] Simplify code by making in and out pointers internal to xenbus_xs.c
From: Xen patchbot -unstable <patchbot-unstable@xxxxxxxxxxxxxxxxxxx>
Date: Thu, 28 Jul 2005 08:52:10 -0400
Delivery-date: Thu, 28 Jul 2005 12:52:37 +0000
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/cgi-bin/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/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 cl349@xxxxxxxxxxxxxxxxxxxx
# Node ID 3be03cd7cd4c670655ce086050fba71c0cf6a957
# Parent  c02e5214247ee75f9cfa3d89b9792110c324cc3d
Simplify code by making in and out pointers internal to xenbus_xs.c
Signed-off-by: Rusty Russel <rusty@xxxxxxxxxxxxxxx>
Signed-off-by: Christian Limpach <Christian.Limpach@xxxxxxxxxxxx>

diff -r c02e5214247e -r 3be03cd7cd4c 
linux-2.6-xen-sparse/drivers/xen/xenbus/xenbus_comms.c
--- a/linux-2.6-xen-sparse/drivers/xen/xenbus/xenbus_comms.c    Wed Jul 27 
18:41:49 2005
+++ b/linux-2.6-xen-sparse/drivers/xen/xenbus/xenbus_comms.c    Thu Jul 28 
12:25:13 2005
@@ -47,6 +47,17 @@
 
 DECLARE_WAIT_QUEUE_HEAD(xb_waitq);
 
+static inline struct ringbuf_head *outbuf(void)
+{
+       return machine_to_virt(xen_start_info.store_mfn << PAGE_SHIFT);
+}
+
+static inline struct ringbuf_head *inbuf(void)
+{
+       return machine_to_virt(xen_start_info.store_mfn << PAGE_SHIFT)
+               + PAGE_SIZE/2;
+}
+
 static irqreturn_t wake_waiting(int irq, void *unused, struct pt_regs *regs)
 {
        wake_up(&xb_waitq);
@@ -108,9 +119,10 @@
        return avail != 0;
 }
 
-int xb_write(struct ringbuf_head *out, const void *data, unsigned len)
+int xb_write(const void *data, unsigned len)
 {
        struct ringbuf_head h;
+       struct ringbuf_head *out = outbuf();
 
        do {
                void *dst;
@@ -141,24 +153,26 @@
        return 0;
 }
 
-int xs_input_avail(struct ringbuf_head *in)
+int xs_input_avail(void)
 {
        unsigned int avail;
+       struct ringbuf_head *in = inbuf();
 
        get_input_chunk(in, in->buf, &avail);
        return avail != 0;
 }
 
-int xb_read(struct ringbuf_head *in, void *data, unsigned len)
+int xb_read(void *data, unsigned len)
 {
        struct ringbuf_head h;
+       struct ringbuf_head *in = inbuf();
        int was_full;
 
        while (len != 0) {
                unsigned int avail;
                const char *src;
 
-               wait_event(xb_waitq, xs_input_avail(in));
+               wait_event(xb_waitq, xs_input_avail());
                h = *in;
                mb();
                if (!check_buffer(&h)) {
@@ -182,14 +196,14 @@
        }
 
        /* If we left something, wake watch thread to deal with it. */
-       if (xs_input_avail(in))
+       if (xs_input_avail())
                wake_up(&xb_waitq);
 
        return 0;
 }
 
 /* Set up interrpt handler off store event channel. */
-int xb_init_comms(void **in, void **out)
+int xb_init_comms(void)
 {
        int err, irq;
 
@@ -202,11 +216,9 @@
                return err;
        }
 
-       *out = machine_to_virt(xen_start_info.store_mfn << PAGE_SHIFT);
-       *in = *out + PAGE_SIZE / 2;
-
        /* FIXME zero out page -- domain builder should probably do this*/
-       memset(*out, 0, PAGE_SIZE);
+       memset(machine_to_virt(xen_start_info.store_mfn << PAGE_SHIFT),
+              0, PAGE_SIZE);
 
        return 0;
 }
diff -r c02e5214247e -r 3be03cd7cd4c 
linux-2.6-xen-sparse/drivers/xen/xenbus/xenbus_comms.h
--- a/linux-2.6-xen-sparse/drivers/xen/xenbus/xenbus_comms.h    Wed Jul 27 
18:41:49 2005
+++ b/linux-2.6-xen-sparse/drivers/xen/xenbus/xenbus_comms.h    Thu Jul 28 
12:25:13 2005
@@ -2,13 +2,12 @@
 #ifndef _XENBUS_COMMS_H
 #define _XENBUS_COMMS_H
 int xs_init(void);
-int xb_init_comms(void **in, void **out);
+int xb_init_comms(void);
 
 /* Low level routines. */
-struct ringbuf_head;
-int xb_write(struct ringbuf_head *out, const void *data, unsigned len);
-int xb_read(struct ringbuf_head *in, void *data, unsigned len);
-int xs_input_avail(struct ringbuf_head *in);
+int xb_write(const void *data, unsigned len);
+int xb_read(void *data, unsigned len);
+int xs_input_avail(void);
 extern wait_queue_head_t xb_waitq;
 
 #endif /* _XENBUS_COMMS_H */
diff -r c02e5214247e -r 3be03cd7cd4c 
linux-2.6-xen-sparse/drivers/xen/xenbus/xenbus_xs.c
--- a/linux-2.6-xen-sparse/drivers/xen/xenbus/xenbus_xs.c       Wed Jul 27 
18:41:49 2005
+++ b/linux-2.6-xen-sparse/drivers/xen/xenbus/xenbus_xs.c       Thu Jul 28 
12:25:13 2005
@@ -44,7 +44,6 @@
 #define streq(a, b) (strcmp((a), (b)) == 0)
 
 static char printf_buffer[4096];
-static void *xs_in, *xs_out;
 static LIST_HEAD(watches);
 DECLARE_MUTEX(xenbus_lock);
 
@@ -69,7 +68,7 @@
        void *ret;
        int err;
 
-       err = xb_read(xs_in, &msg, sizeof(msg));
+       err = xb_read(&msg, sizeof(msg));
        if (err)
                return ERR_PTR(err);
 
@@ -77,7 +76,7 @@
        if (!ret)
                return ERR_PTR(-ENOMEM);
 
-       err = xb_read(xs_in, ret, msg.len);
+       err = xb_read(ret, msg.len);
        if (err) {
                kfree(ret);
                return ERR_PTR(err);
@@ -94,15 +93,14 @@
 void xenbus_debug_write(const char *str, unsigned int count)
 {
        struct xsd_sockmsg msg;
-       void *out = machine_to_virt(xen_start_info.store_mfn << PAGE_SHIFT);
 
        msg.type = XS_DEBUG;
        msg.len = sizeof("print") + count + 1;
 
-       xb_write(out, &msg, sizeof(msg));
-       xb_write(out, "print", sizeof("print"));
-       xb_write(out, str, count);
-       xb_write(out, "", 1);
+       xb_write(&msg, sizeof(msg));
+       xb_write("print", sizeof("print"));
+       xb_write(str, count);
+       xb_write("", 1);
 }
 
 /* Send message to xs, get kmalloc'ed reply.  ERR_PTR() on error. */
@@ -123,12 +121,12 @@
        for (i = 0; i < num_vecs; i++)
                msg.len += iovec[i].iov_len;
 
-       err = xb_write(xs_out, &msg, sizeof(msg));
+       err = xb_write(&msg, sizeof(msg));
        if (err)
                return ERR_PTR(err);
 
        for (i = 0; i < num_vecs; i++) {
-               err = xb_write(xs_out, iovec[i].iov_base, iovec[i].iov_len);;
+               err = xb_write(iovec[i].iov_base, iovec[i].iov_len);;
                if (err)
                        return ERR_PTR(err);
        }
@@ -509,14 +507,14 @@
                char *token;
                char *node = NULL;
 
-               wait_event(xb_waitq, xs_input_avail(xs_in));
+               wait_event(xb_waitq, xs_input_avail());
 
                /* If this is a spurious wakeup caused by someone
                 * doing an op, they'll hold the lock and the buffer
                 * will be empty by the time we get there.               
                 */
                down(&xenbus_lock);
-               if (xs_input_avail(xs_in))
+               if (xs_input_avail())
                        node = xs_read_watch(&token);
 
                if (node && !IS_ERR(node)) {
@@ -548,7 +546,7 @@
        int err;
        struct task_struct *watcher;
 
-       err = xb_init_comms(&xs_in, &xs_out);
+       err = xb_init_comms();
        if (err)
                return err;
        

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

<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-changelog] Simplify code by making in and out pointers internal to xenbus_xs.c, Xen patchbot -unstable <=