xen-devel
[Xen-devel] [PATCH RFC 2/5] Grant table for console, xenstore pages
This patch modifies the xenstore 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 e4e473425d0f tools/xenstore/xenstored_domain.c
--- a/tools/xenstore/xenstored_domain.c Thu Jul 10 19:05:56 2008 +0100
+++ b/tools/xenstore/xenstored_domain.c Thu Jul 10 19:30:50 2008 +0100
@@ -31,8 +31,10 @@
#include "xenstored_watch.h"
#include <xenctrl.h>
+#include <xen/grant_table.h>
static int *xc_handle;
+static int *xcg_handle;
static evtchn_port_t virq_port;
int xce_handle = -1;
@@ -343,13 +345,14 @@
domain = find_domain_by_domid(domid);
if (domain == NULL) {
- interface = xc_map_foreign_range(
- *xc_handle, domid,
- getpagesize(), PROT_READ|PROT_WRITE, mfn);
+ interface = xc_gnttab_map_grant_ref(*xcg_handle, domid,
+ GNTTAB_RESERVED_XENSTORE,
+ PROT_READ|PROT_WRITE);
if (!interface) {
send_error(conn, errno);
return;
}
+
/* Hang domain off "in" until we're finished. */
domain = new_domain(in, domid, port);
if (!domain) {
@@ -542,6 +545,12 @@
return 0;
}
+static int close_xcg_handle(void *_handle)
+{
+ xc_gnttab_close(*(int *)_handle);
+ return 0;
+}
+
/* Returns the implicit path of a connection (only domains have this) */
const char *get_implicit_path(const struct connection *conn)
{
@@ -593,6 +602,16 @@
barf_perror("Failed to open connection to hypervisor");
talloc_set_destructor(xc_handle, close_xc_handle);
+
+ xcg_handle = talloc(talloc_autofree_context(), int);
+ if (!xcg_handle)
+ barf_perror("Failed to allocate domain gnttab handle");
+
+ *xcg_handle = xc_gnttab_open();
+ if (*xcg_handle < 0)
+ barf_perror("Failed to open gnttab connection to hypervisor");
+
+ talloc_set_destructor(xcg_handle, close_xcg_handle);
xce_handle = xc_evtchn_open();
_______________________________________________
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
|
|
|