xend: populate HVM guest grant table on boot

Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
Committed-by: Ian Jackson <ian.jackson@eu.citrix.com>
This commit is contained in:
Ian Campbell committed 2012-02-10 17:24:50 +00:00
1 parent c13b827e66
commit c06bde41af
3 files changed
+43

No files matched your search

+35
View File
@@ -1008,6 +1008,30 @@ static PyObject *pyxc_hvm_build(XcObject *self,
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 @@ static PyMethodDef pyxc_methods[] = {
" 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"
+1
View File
@@ -52,6 +52,7 @@ HVM_PARAM_TIMER_MODE = 10
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 = [
+7
View File
@@ -971,6 +971,13 @@ class HVMImageHandler(ImageHandler):
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
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.