| 
         
xen-devel
[Xen-devel] [PATCH RFC 3/5] Grant table for console, xenstore pages
 
This patch modifies the console daemon to use xc_gnttab_map_grant_ref
instead of xc_map_foreign_range.
Make sure you have linux-2.6.18-xen.hg changeset 600:1bd3dbfdaf0f before
running this.
Signed-off-by: Diego Ongaro <diego.ongaro@xxxxxxxxxx>
---
diff -r e0be727aa133 tools/console/daemon/io.c
--- a/tools/console/daemon/io.c Thu Jul 10 19:30:51 2008 +0100
+++ b/tools/console/daemon/io.c Thu Jul 10 19:50:47 2008 +0100
@@ -25,6 +25,7 @@
 #include <xs.h>
 #include <xen/io/console.h>
 #include <xenctrl.h>
+#include <xen/grant_table.h>
 
 #include <stdlib.h>
 #include <errno.h>
@@ -540,10 +541,9 @@
        if (ring_ref != dom->ring_ref) {
                if (dom->interface != NULL)
                        munmap(dom->interface, getpagesize());
-               dom->interface = xc_map_foreign_range(
-                       xc, dom->domid, getpagesize(),
-                       PROT_READ|PROT_WRITE,
-                       (unsigned long)ring_ref);
+               dom->interface = xc_gnttab_map_grant_ref(xcg, dom->domid,
+                                                        
GNTTAB_RESERVED_CONSOLE,
+                                                        PROT_READ|PROT_WRITE);
                if (dom->interface == NULL) {
                        err = EINVAL;
                        goto out;
diff -r e0be727aa133 tools/console/daemon/utils.c
--- a/tools/console/daemon/utils.c      Thu Jul 10 19:30:51 2008 +0100
+++ b/tools/console/daemon/utils.c      Thu Jul 10 19:50:47 2008 +0100
@@ -37,8 +37,9 @@
 #include "xenctrl.h"
 #include "utils.h"
 
-struct xs_handle *xs;
-int xc;
+struct xs_handle *xs = NULL;
+int xc = -1;
+int xcg = -1;
 
 static void child_exit(int sig)
 {
@@ -122,6 +123,12 @@
                goto out;
        }
 
+       xcg = xc_gnttab_open();
+       if (xcg == -1) {
+               dolog(LOG_ERR, "Failed to open gnttab (%m)");
+               goto out;
+       }
+
        if (!xs_watch(xs, "@introduceDomain", "domlist")) {
                dolog(LOG_ERR, "xenstore watch on @introduceDomain fails.");
                goto out;
@@ -139,6 +146,8 @@
                xs_daemon_close(xs);
        if (xc != -1)
                xc_interface_close(xc);
+       if (xcg != -1)
+               xc_gnttab_close(xcg);
        return false;
 }
 
diff -r e0be727aa133 tools/console/daemon/utils.h
--- a/tools/console/daemon/utils.h      Thu Jul 10 19:30:51 2008 +0100
+++ b/tools/console/daemon/utils.h      Thu Jul 10 19:50:47 2008 +0100
@@ -32,6 +32,7 @@
 
 extern struct xs_handle *xs;
 extern int xc;
+extern int xcg;
 
 #if 1
 #define dolog(val, fmt, ...) do {                              \
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
 |   
 
| <Prev in Thread] | 
Current Thread | 
[Next in Thread>
 |  
- [Xen-devel] [PATCH RFC 0/5] Grant table for console, xenstore pages, Diego Ongaro
- [Xen-devel] [PATCH RFC 1/5] Grant table for console, xenstore pages, Diego Ongaro
 
- [Xen-devel] [PATCH RFC 2/5] Grant table for console, xenstore pages, Diego Ongaro
 
- [Xen-devel] [PATCH RFC 3/5] Grant table for console, xenstore pages,
Diego Ongaro <=
 
- [Xen-devel] [PATCH RFC 4/5] Grant table for console, xenstore pages, Diego Ongaro
 
- [Xen-devel] [PATCH RFC 5/5] Grant table for console, xenstore pages, Diego Ongaro
 
- Re: [Xen-devel] [PATCH RFC 0/5] Grant table for console,	xenstore pages, Derek Murray
 
  
 
 |  
  
 | 
    |