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