[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH RFC v1 03/13] libxc: introduce the notion of a container type
Introduce the notion of a container type into xc_dom_image. This will be needed by later changes that will also use xc_dom_image in order to build HVM guests. Signed-off-by: Roger Pau Monnà <roger.pau@xxxxxxxxxx> Cc: Ian Jackson <ian.jackson@xxxxxxxxxxxxx> Cc: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx> Cc: Ian Campbell <ian.campbell@xxxxxxxxxx> Cc: Wei Liu <wei.liu2@xxxxxxxxxx> Cc: Jan Beulich <jbeulich@xxxxxxxx> Cc: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> Cc: Boris Ostrovsky <boris.ostrovsky@xxxxxxxxxx> Cc: Konrad Rzeszutek Wilk <konrad.wilk@xxxxxxxxxx> Cc: Elena Ufimtseva <elena.ufimtseva@xxxxxxxxxx> --- tools/libxc/include/xc_dom.h | 6 ++++++ tools/libxc/xc_dom_x86.c | 4 ++++ tools/libxl/libxl_dom.c | 1 + 3 files changed, 11 insertions(+) diff --git a/tools/libxc/include/xc_dom.h b/tools/libxc/include/xc_dom.h index ec9e293..f7b5f0f 100644 --- a/tools/libxc/include/xc_dom.h +++ b/tools/libxc/include/xc_dom.h @@ -180,6 +180,12 @@ struct xc_dom_image { struct xc_dom_arch *arch_hooks; /* allocate up to virt_alloc_end */ int (*allocate) (struct xc_dom_image * dom, xen_vaddr_t up_to); + + /* Container type (HVM or PV). */ + enum { + XC_DOM_PV_CONTAINER, + XC_DOM_HVM_CONTAINER, + } container_type; }; /* --- pluggable kernel loader ------------------------------------- */ diff --git a/tools/libxc/xc_dom_x86.c b/tools/libxc/xc_dom_x86.c index 0d80c18..b89f5c2 100644 --- a/tools/libxc/xc_dom_x86.c +++ b/tools/libxc/xc_dom_x86.c @@ -1071,6 +1071,10 @@ int arch_setup_bootlate(struct xc_dom_image *dom) int xc_dom_feature_translated(struct xc_dom_image *dom) { + /* Guests running inside HVM containers are always auto-translated. */ + if ( dom->container_type == XC_DOM_HVM_CONTAINER ) + return 1; + return elf_xen_feature_get(XENFEAT_auto_translated_physmap, dom->f_active); } diff --git a/tools/libxl/libxl_dom.c b/tools/libxl/libxl_dom.c index a970a8b..8907bd6 100644 --- a/tools/libxl/libxl_dom.c +++ b/tools/libxl/libxl_dom.c @@ -626,6 +626,7 @@ int libxl__build_pv(libxl__gc *gc, uint32_t domid, } dom->pvh_enabled = state->pvh_enabled; + dom->container_type = XC_DOM_PV_CONTAINER; LOG(DEBUG, "pv kernel mapped %d path %s", state->pv_kernel.mapped, state->pv_kernel.path); -- 1.9.5 (Apple Git-50.3) _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |