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

[Xen-devel] [PATCH 18/24] [xen-unstable.hg] flag in minios kernel to say

To: "xen-devel@xxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxx>
Subject: [Xen-devel] [PATCH 18/24] [xen-unstable.hg] flag in minios kernel to say whether xenbus is initialised - it might not be if this is a xenstore stubdom
From: Alex Zeffertt <alex.zeffertt@xxxxxxxxxxxxx>
Date: Mon, 23 Mar 2009 15:21:24 +0000
Delivery-date: Mon, 23 Mar 2009 08:38:00 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
User-agent: Thunderbird 2.0.0.19 (X11/20090105)


Aborts minios xenbus initialization if there is no xenstored mfn or port
available. Adds a is_xenbus_ready function for other modules to query
whether xenbus is available.

TODO: Do we just want a global integer instead of a function?

TODO: Should fini_xenbus take it back to not ready?

TODO: Should the other non-static functions fail if !ready?

Signed-off-by: Diego Ongaro <diego.ongaro@xxxxxxxxxx>
Signed-off-by: Alex Zeffertt <alex.zeffertt@xxxxxxxxxxxxx>
---

diff -r e53f83b91052 extras/mini-os/include/xenbus.h
--- a/extras/mini-os/include/xenbus.h   Fri Aug 01 16:50:48 2008 +0100
+++ b/extras/mini-os/include/xenbus.h   Fri Aug 01 16:50:49 2008 +0100
@@ -6,6 +6,8 @@
 
 /* Initialize the XenBus system. */
 void init_xenbus(void);
+
+int is_xenbus_ready(void);
 
 /* Read the value associated with a path.  Returns a malloc'd error
    string on failure and sets *value to NULL.  On success, *value is
diff -r e53f83b91052 extras/mini-os/xenbus/xenbus.c
--- a/extras/mini-os/xenbus/xenbus.c    Fri Aug 01 16:50:48 2008 +0100
+++ b/extras/mini-os/xenbus/xenbus.c    Fri Aug 01 16:50:49 2008 +0100
@@ -41,6 +41,7 @@
 #define DEBUG(_f, _a...)    ((void)0)
 #endif
 
+static int xenbus_ready;
 static struct xenstore_domain_interface *xenstore_buf;
 static DECLARE_WAIT_QUEUE_HEAD(xb_waitq);
 DECLARE_WAIT_QUEUE_HEAD(xenbus_watch_queue);
@@ -254,12 +255,23 @@
     return o_probe;
 }
 
+int is_xenbus_ready(void)
+{
+    return xenbus_ready;
+}
+
 /* Initialise xenbus. */
 void init_xenbus(void)
 {
     int err;
     printk("Initialising xenbus\n");
     DEBUG("init_xenbus called.\n");
+
+    if (start_info.store_mfn == -1 || start_info.store_evtchn == -1) {
+        printk("No start_info store_mfn/store_evtchn, aborting init_xenbus\n");
+        return;
+    }
+
     xenstore_buf = mfn_to_virt(start_info.store_mfn);
     create_thread("xenstore", xenbus_thread_func, NULL);
     DEBUG("buf at %p.\n", xenstore_buf);
@@ -268,6 +280,8 @@
               NULL);
     unmask_evtchn(start_info.store_evtchn);
     DEBUG("xenbus on irq %d\n", err);
+
+    xenbus_ready = 1;
 }
 
 void fini_xenbus(void)


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-devel] [PATCH 18/24] [xen-unstable.hg] flag in minios kernel to say whether xenbus is initialised - it might not be if this is a xenstore stubdom, Alex Zeffertt <=