|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen-unstable] xend: populate HVM guest grant table on boot
# HG changeset patch
# User Ian Campbell <ian.campbell@xxxxxxxxxx>
# Date 1328894690 0
# Node ID 9ad1e42c341bc78463b6f6610a6300f75b535fbb
# Parent 0dcb9d1e7b554a9f6f76b62b38a139acf9b2180a
xend: populate HVM guest grant table on boot
Signed-off-by: Ian Campbell <ian.campbell@xxxxxxxxxx>
Committed-by: Ian Jackson <ian.jackson@xxxxxxxxxxxxx>
---
diff -r 0dcb9d1e7b55 -r 9ad1e42c341b tools/python/xen/lowlevel/xc/xc.c
--- a/tools/python/xen/lowlevel/xc/xc.c Fri Feb 10 16:07:07 2012 +0000
+++ b/tools/python/xen/lowlevel/xc/xc.c Fri Feb 10 17:24:50 2012 +0000
@@ -1008,6 +1008,30 @@
return Py_BuildValue("{}");
}
+static PyObject *pyxc_gnttab_hvm_seed(XcObject *self,
+ PyObject *args,
+ PyObject *kwds)
+{
+ uint32_t dom, console_domid, xenstore_domid;
+ unsigned long xenstore_gmfn = 0;
+ unsigned long console_gmfn = 0;
+ static char *kwd_list[] = { "domid",
+ "console_gmfn", "xenstore_gmfn",
+ "console_domid", "xenstore_domid", NULL };
+ if ( !PyArg_ParseTupleAndKeywords(args, kwds, "iiiii", kwd_list,
+ &dom,
+ &console_gmfn, &xenstore_gmfn,
+ &console_domid, &xenstore_domid) )
+ return NULL;
+
+ if ( xc_dom_gnttab_hvm_seed(self->xc_handle, dom,
+ console_gmfn, xenstore_gmfn,
+ console_domid, xenstore_domid) != 0 )
+ return pyxc_error_to_exception(self->xc_handle);
+
+ return Py_None;
+}
+
static PyObject *pyxc_evtchn_alloc_unbound(XcObject *self,
PyObject *args,
PyObject *kwds)
@@ -2439,6 +2463,17 @@
" vcpu_avail [long, 1]: Which Virtual CPUS available.\n\n"
"Returns: [int] 0 on success; -1 on error.\n" },
+ { "gnttab_hvm_seed",
+ (PyCFunction)pyxc_gnttab_hvm_seed,
+ METH_KEYWORDS, "\n"
+ "Initialise HVM guest grant table.\n"
+ " dom [int]: Identifier of domain to build into.\n"
+ " console_gmfn [int]: \n"
+ " xenstore_gmfn [int]: \n"
+ " console_domid [int]: \n"
+ " xenstore_domid [int]: \n"
+ "Returns: None on sucess. Raises exception on error.\n" },
+
{ "hvm_get_param",
(PyCFunction)pyxc_get_hvm_param,
METH_VARARGS | METH_KEYWORDS, "\n"
diff -r 0dcb9d1e7b55 -r 9ad1e42c341b tools/python/xen/xend/XendConstants.py
--- a/tools/python/xen/xend/XendConstants.py Fri Feb 10 16:07:07 2012 +0000
+++ b/tools/python/xen/xend/XendConstants.py Fri Feb 10 17:24:50 2012 +0000
@@ -52,6 +52,7 @@
HVM_PARAM_HPET_ENABLED = 11
HVM_PARAM_ACPI_S_STATE = 14
HVM_PARAM_VPT_ALIGN = 16
+HVM_PARAM_CONSOLE_PFN = 17
HVM_PARAM_NESTEDHVM = 24 # x86
restart_modes = [
diff -r 0dcb9d1e7b55 -r 9ad1e42c341b tools/python/xen/xend/image.py
--- a/tools/python/xen/xend/image.py Fri Feb 10 16:07:07 2012 +0000
+++ b/tools/python/xen/xend/image.py Fri Feb 10 17:24:50 2012 +0000
@@ -971,6 +971,13 @@
xc.hvm_set_param(self.vm.getDomid(), HVM_PARAM_STORE_EVTCHN,
store_evtchn)
+ console_mfn = xc.hvm_get_param(self.vm.getDomid(),
HVM_PARAM_CONSOLE_PFN)
+ xc.gnttab_hvm_seed(domid = self.vm.getDomid(),
+ console_gmfn = console_mfn,
+ xenstore_gmfn = rc['store_mfn'],
+ console_domid = 0,
+ xenstore_domid = 0)
+
return rc
_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |