[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v3 08/32] libxc: introduce a xc_dom_arch for hvm-3.0-x86_32 guests
On 03/07/15 12:34, Roger Pau Monne wrote: > This xc_dom_arch will be used in order to build HVM domains. The code is > based on the existing xc_hvm_populate_memory and xc_hvm_populate_params > functions. > > 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> Similar review to patch 5. One bug - see below. > --- > tools/libxc/include/xc_dom.h | 6 + > tools/libxc/xc_dom_x86.c | 541 > ++++++++++++++++++++++++++++++++++++++++++- > 2 files changed, 536 insertions(+), 11 deletions(-) > > diff --git a/tools/libxc/include/xc_dom.h b/tools/libxc/include/xc_dom.h > index 42533a5..68b052c 100644 > --- a/tools/libxc/include/xc_dom.h > +++ b/tools/libxc/include/xc_dom.h > @@ -189,6 +189,12 @@ struct xc_dom_image { > } container_type; > > /* HVM specific fields. */ > + xen_pfn_t target_pages; > + xen_pfn_t mmio_start; > + xen_pfn_t mmio_size; > + xen_pfn_t lowmem_end; > + xen_pfn_t highmem_end; > + > /* Extra ACPI tables passed to HVMLOADER */ > struct xc_hvm_firmware_module acpi_module; > > diff --git a/tools/libxc/xc_dom_x86.c b/tools/libxc/xc_dom_x86.c > index 993954e..6573b94 100644 > --- a/tools/libxc/xc_dom_x86.c > +++ b/tools/libxc/xc_dom_x86.c > @@ -40,10 +40,29 @@ > > /* ------------------------------------------------------------------------ > */ > > -#define SUPERPAGE_PFN_SHIFT 9 > -#define SUPERPAGE_NR_PFNS (1UL << SUPERPAGE_PFN_SHIFT) > #define SUPERPAGE_BATCH_SIZE 512 > > +#define SUPERPAGE_2MB_SHIFT 9 > +#define SUPERPAGE_2MB_NR_PFNS (1UL << SUPERPAGE_2MB_SHIFT) > +#define SUPERPAGE_1GB_SHIFT 18 > +#define SUPERPAGE_1GB_NR_PFNS (1UL << SUPERPAGE_1GB_SHIFT) > + > +#define VGA_HOLE_SIZE (0x20) > + > +#define SPECIALPAGE_PAGING 0 > +#define SPECIALPAGE_ACCESS 1 > +#define SPECIALPAGE_SHARING 2 > +#define SPECIALPAGE_BUFIOREQ 3 > +#define SPECIALPAGE_XENSTORE 4 > +#define SPECIALPAGE_IOREQ 5 > +#define SPECIALPAGE_IDENT_PT 6 > +#define SPECIALPAGE_CONSOLE 7 > +#define NR_SPECIAL_PAGES 8 > +#define special_pfn(x) (0xff000u - NR_SPECIAL_PAGES + (x)) > + > +#define NR_IOREQ_SERVER_PAGES 8 > +#define ioreq_server_pfn(x) (special_pfn(0) - NR_IOREQ_SERVER_PAGES + (x)) > + > #define bits_to_mask(bits) (((xen_vaddr_t)1 << (bits))-1) > #define round_down(addr, mask) ((addr) & ~(mask)) > #define round_up(addr, mask) ((addr) | (mask)) > @@ -462,6 +481,135 @@ static int alloc_magic_pages(struct xc_dom_image *dom) > return 0; > } > > +static void build_hvm_info(void *hvm_info_page, struct xc_dom_image *dom) > +{ > + struct hvm_info_table *hvm_info = (struct hvm_info_table *) > + (((unsigned char *)hvm_info_page) + HVM_INFO_OFFSET); > + uint8_t sum; > + int i; > + > + memset(hvm_info_page, 0, PAGE_SIZE); > + > + /* Fill in the header. */ > + strncpy(hvm_info->signature, "HVM INFO", 8); Please apply c/s b9dbe33 to this code. (Said changeset was since your submission, but please don't reintroduce the bug). ~Andrew _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |