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

RE: [Xen-devel] [PATCH] get xenstore buffer in vmx guest

To: "Rusty Russell" <rusty@xxxxxxxxxxxxxxx>
Subject: RE: [Xen-devel] [PATCH] get xenstore buffer in vmx guest
From: "Ling, Xiaofeng" <xiaofeng.ling@xxxxxxxxx>
Date: Mon, 5 Sep 2005 22:22:35 +0800
Cc: Ian Pratt <m+Ian.Pratt@xxxxxxxxxxxx>, xen-devel <xen-devel@xxxxxxxxxxxxxxxxxxx>
Delivery-date: Mon, 05 Sep 2005 14:20:40 +0000
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/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
Thread-index: AcWyCySkALRLKOTyRGiTASqyrRhsrgAFzSyg
Thread-topic: [Xen-devel] [PATCH] get xenstore buffer in vmx guest
Rusty Russell <mailto:rusty@xxxxxxxxxxxxxxx> wrote:
> On Mon, 2005-09-05 at 16:38 +0800, Xiaofeng Ling wrote:
>>   static inline struct ringbuf_head *outbuf(void)
>>   {
>> -    return mfn_to_virt(xen_start_info.store_mfn);
>> +    return XENSTORE_BUF;
>>   }
> 
> Just a minor thing: I'd really prefer an inline function called
> xenstore_page_virt() or something, rather than a macro which looks
> like a constant. 
ok, so the new patch will be:

diff -r 287d36b46fa3 linux-2.6-xen-sparse/drivers/xen/xenbus/xenbus_comms.c
--- a/linux-2.6-xen-sparse/drivers/xen/xenbus/xenbus_comms.c    Tue Aug 30 
20:36:49 2005
+++ b/linux-2.6-xen-sparse/drivers/xen/xenbus/xenbus_comms.c    Mon Sep  5 
22:15:45 2005
@@ -48,12 +48,12 @@

 static inline struct ringbuf_head *outbuf(void)
 {
-   return mfn_to_virt(xen_start_info.store_mfn);
+   return xenstore_page_virt();
 }

 static inline struct ringbuf_head *inbuf(void)
 {
-   return mfn_to_virt(xen_start_info.store_mfn) + PAGE_SIZE/2;
+   return xenstore_page_virt() + PAGE_SIZE/2;
 }

 static irqreturn_t wake_waiting(int irq, void *unused, struct pt_regs *regs)
@@ -218,7 +218,7 @@
    }

    /* FIXME zero out page -- domain builder should probably do this*/
-   memset(mfn_to_virt(xen_start_info.store_mfn), 0, PAGE_SIZE);
+   memset(xenstore_page_virt(), 0, PAGE_SIZE);

    return 0;
 }
diff -r 287d36b46fa3 linux-2.6-xen-sparse/drivers/xen/xenbus/xenbus_comms.h
--- a/linux-2.6-xen-sparse/drivers/xen/xenbus/xenbus_comms.h    Tue Aug 30 
20:36:49 2005
+++ b/linux-2.6-xen-sparse/drivers/xen/xenbus/xenbus_comms.h    Mon Sep  5 
22:15:45 2005
@@ -38,4 +38,17 @@
 int xs_input_avail(void);
 extern wait_queue_head_t xb_waitq;

+#ifdef CONFIG_XEN
+static inline void *xenstore_page_virt(void)
+{
+    return (void*)mfn_to_virt(xen_start_info.store_mfn);
+}
+#else
+extern void *shared_xenstore_buf;
+static inline void *xenstore_page_virt(void)
+{
+    return shared_xenstore_buf;
+}
+#endif
+
 #endif /* _XENBUS_COMMS_H */
diff -r 287d36b46fa3 linux-2.6-xen-sparse/drivers/xen/xenbus/xenbus_probe.c
--- a/linux-2.6-xen-sparse/drivers/xen/xenbus/xenbus_probe.c    Tue Aug 30 
20:36:49 2005
+++ b/linux-2.6-xen-sparse/drivers/xen/xenbus/xenbus_probe.c    Mon Sep  5 
22:18:22 2005
@@ -648,4 +648,5 @@
    return 0;
 }

-postcore_initcall(xenbus_probe_init);
+module_init(xenbus_probe_init);
+MODULE_LICENSE("GPL");

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