[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH v2 06/22] libxc: make arch_setup_boot{init/late} xc_dom_arch hooks
This should not introduce any functional change. 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> --- tools/libxc/include/xc_dom.h | 7 ++-- tools/libxc/xc_dom_arm.c | 38 ++++++++++++--------- tools/libxc/xc_dom_boot.c | 4 +-- tools/libxc/xc_dom_x86.c | 78 ++++++++++++++++++++++++-------------------- 4 files changed, 68 insertions(+), 59 deletions(-) diff --git a/tools/libxc/include/xc_dom.h b/tools/libxc/include/xc_dom.h index b461f19..42533a5 100644 --- a/tools/libxc/include/xc_dom.h +++ b/tools/libxc/include/xc_dom.h @@ -223,6 +223,8 @@ struct xc_dom_arch { int (*start_info) (struct xc_dom_image * dom); int (*shared_info) (struct xc_dom_image * dom, void *shared_info); int (*vcpu) (struct xc_dom_image * dom, void *vcpu_ctxt); + int (*bootearly) (struct xc_dom_image * dom); + int (*bootlate) (struct xc_dom_image * dom); /* arch-specific memory initialization. */ int (*meminit) (struct xc_dom_image * dom); @@ -402,11 +404,6 @@ static inline xen_pfn_t xc_dom_p2m(struct xc_dom_image *dom, xen_pfn_t pfn) return dom->p2m_host[pfn - dom->rambase_pfn]; } -/* --- arch bits --------------------------------------------------- */ - -int arch_setup_bootearly(struct xc_dom_image *dom); -int arch_setup_bootlate(struct xc_dom_image *dom); - /* * Local variables: * mode: C diff --git a/tools/libxc/xc_dom_arm.c b/tools/libxc/xc_dom_arm.c index 1f00d05..b0d964c 100644 --- a/tools/libxc/xc_dom_arm.c +++ b/tools/libxc/xc_dom_arm.c @@ -492,6 +492,24 @@ static int meminit(struct xc_dom_image *dom) /* ------------------------------------------------------------------------ */ +static int bootearly(struct xc_dom_image *dom) +{ + DOMPRINTF("%s: doing nothing", __FUNCTION__); + return 0; +} + +static int bootlate(struct xc_dom_image *dom) +{ + /* XXX + * map shared info + * map grant tables + * setup shared info + */ + return 0; +} + +/* ------------------------------------------------------------------------ */ + static struct xc_dom_arch xc_dom_32 = { .guest_type = "xen-3.0-armv7l", .native_protocol = XEN_IO_PROTO_ABI_ARM, @@ -504,6 +522,8 @@ static struct xc_dom_arch xc_dom_32 = { .shared_info = shared_info_arm, .vcpu = vcpu_arm32, .meminit = meminit, + .bootearly = bootearly, + .bootlate = bootlate, }; static struct xc_dom_arch xc_dom_64 = { @@ -518,6 +538,8 @@ static struct xc_dom_arch xc_dom_64 = { .shared_info = shared_info_arm, .vcpu = vcpu_arm64, .meminit = meminit, + .bootearly = bootearly, + .bootlate = bootlate, }; static void __init register_arch_hooks(void) @@ -526,22 +548,6 @@ static void __init register_arch_hooks(void) xc_dom_register_arch_hooks(&xc_dom_64); } -int arch_setup_bootearly(struct xc_dom_image *dom) -{ - DOMPRINTF("%s: doing nothing", __FUNCTION__); - return 0; -} - -int arch_setup_bootlate(struct xc_dom_image *dom) -{ - /* XXX - * map shared info - * map grant tables - * setup shared info - */ - return 0; -} - int xc_dom_feature_translated(struct xc_dom_image *dom) { return 1; diff --git a/tools/libxc/xc_dom_boot.c b/tools/libxc/xc_dom_boot.c index 3ef7e6c..2f7488d 100644 --- a/tools/libxc/xc_dom_boot.c +++ b/tools/libxc/xc_dom_boot.c @@ -209,7 +209,7 @@ int xc_dom_boot_image(struct xc_dom_image *dom) DOMPRINTF_CALLED(dom->xch); /* misc stuff*/ - if ( (rc = arch_setup_bootearly(dom)) != 0 ) + if ( (rc = dom->arch_hooks->bootearly(dom)) != 0 ) return rc; /* collect some info */ @@ -256,7 +256,7 @@ int xc_dom_boot_image(struct xc_dom_image *dom) xc_dom_log_memory_footprint(dom); /* misc x86 stuff */ - if ( (rc = arch_setup_bootlate(dom)) != 0 ) + if ( (rc = dom->arch_hooks->bootlate(dom)) != 0 ) return rc; /* let the vm run */ diff --git a/tools/libxc/xc_dom_x86.c b/tools/libxc/xc_dom_x86.c index 6fb4aee..993954e 100644 --- a/tools/libxc/xc_dom_x86.c +++ b/tools/libxc/xc_dom_x86.c @@ -926,41 +926,7 @@ static int meminit_pv(struct xc_dom_image *dom) /* ------------------------------------------------------------------------ */ -static struct xc_dom_arch xc_dom_32_pae = { - .guest_type = "xen-3.0-x86_32p", - .native_protocol = XEN_IO_PROTO_ABI_X86_32, - .page_shift = PAGE_SHIFT_X86, - .sizeof_pfn = 4, - .alloc_magic_pages = alloc_magic_pages, - .count_pgtables = count_pgtables_x86_32_pae, - .setup_pgtables = setup_pgtables_x86_32_pae, - .start_info = start_info_x86_32, - .shared_info = shared_info_x86_32, - .vcpu = vcpu_x86_32, - .meminit = meminit_pv, -}; - -static struct xc_dom_arch xc_dom_64 = { - .guest_type = "xen-3.0-x86_64", - .native_protocol = XEN_IO_PROTO_ABI_X86_64, - .page_shift = PAGE_SHIFT_X86, - .sizeof_pfn = 8, - .alloc_magic_pages = alloc_magic_pages, - .count_pgtables = count_pgtables_x86_64, - .setup_pgtables = setup_pgtables_x86_64, - .start_info = start_info_x86_64, - .shared_info = shared_info_x86_64, - .vcpu = vcpu_x86_64, - .meminit = meminit_pv, -}; - -static void __init register_arch_hooks(void) -{ - xc_dom_register_arch_hooks(&xc_dom_32_pae); - xc_dom_register_arch_hooks(&xc_dom_64); -} - -int arch_setup_bootearly(struct xc_dom_image *dom) +static int bootearly(struct xc_dom_image *dom) { DOMPRINTF("%s: doing nothing", __FUNCTION__); return 0; @@ -999,7 +965,7 @@ static int map_grant_table_frames(struct xc_dom_image *dom) return 0; } -int arch_setup_bootlate(struct xc_dom_image *dom) +static int bootlate_pv(struct xc_dom_image *dom) { static const struct { char *guest; @@ -1072,6 +1038,46 @@ int arch_setup_bootlate(struct xc_dom_image *dom) return 0; } +/* ------------------------------------------------------------------------ */ + +static struct xc_dom_arch xc_dom_32_pae = { + .guest_type = "xen-3.0-x86_32p", + .native_protocol = XEN_IO_PROTO_ABI_X86_32, + .page_shift = PAGE_SHIFT_X86, + .sizeof_pfn = 4, + .alloc_magic_pages = alloc_magic_pages, + .count_pgtables = count_pgtables_x86_32_pae, + .setup_pgtables = setup_pgtables_x86_32_pae, + .start_info = start_info_x86_32, + .shared_info = shared_info_x86_32, + .vcpu = vcpu_x86_32, + .meminit = meminit_pv, + .bootearly = bootearly, + .bootlate = bootlate_pv, +}; + +static struct xc_dom_arch xc_dom_64 = { + .guest_type = "xen-3.0-x86_64", + .native_protocol = XEN_IO_PROTO_ABI_X86_64, + .page_shift = PAGE_SHIFT_X86, + .sizeof_pfn = 8, + .alloc_magic_pages = alloc_magic_pages, + .count_pgtables = count_pgtables_x86_64, + .setup_pgtables = setup_pgtables_x86_64, + .start_info = start_info_x86_64, + .shared_info = shared_info_x86_64, + .vcpu = vcpu_x86_64, + .meminit = meminit_pv, + .bootearly = bootearly, + .bootlate = bootlate_pv, +}; + +static void __init register_arch_hooks(void) +{ + xc_dom_register_arch_hooks(&xc_dom_32_pae); + xc_dom_register_arch_hooks(&xc_dom_64); +} + int xc_dom_feature_translated(struct xc_dom_image *dom) { /* Guests running inside HVM containers are always auto-translated. */ -- 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 |