[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [qemu-xen stable-4.3] xen: fix usage of xc_domain_create in domain builder
commit dfa931206ef90f27c4998399e03233501d7e8705 Author: Roger Pau Monne <roger.pau@xxxxxxxxxx> AuthorDate: Fri Nov 13 17:38:06 2015 +0000 Commit: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx> CommitDate: Fri Feb 5 14:47:03 2016 +0000 xen: fix usage of xc_domain_create in domain builder Due to the addition of HVMlite and the requirement to always provide a valid xc_domain_configuration_t, xc_domain_create now always takes an arch domain config, which can be NULL in order to mimic previous behaviour. Add a small stub called xen_domain_create that encapsulates the correct call to xc_domain_create depending on the libxc version detected. Signed-off-by: Roger Pau Monné <roger.pau@xxxxxxxxxx> Acked-by: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx> Signed-off-by: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx> --- configure | 19 ++++++++++++++++++- hw/xen_common.h | 16 ++++++++++++++++ hw/xen_domainbuild.c | 2 +- 3 files changed, 35 insertions(+), 2 deletions(-) diff --git a/configure b/configure index 994f731..4dcbd67 100755 --- a/configure +++ b/configure @@ -1432,7 +1432,24 @@ EOF fi xen=no - # Xen unstable + # Xen 4.7 + elif + cat > $TMPC <<EOF && +#include <xenctrl.h> +#include <stdint.h> +int main(void) { + xc_interface *xc = NULL; + xen_domain_handle_t handle; + xc_domain_create(xc, 0, handle, 0, NULL, NULL); + return 0; +} +EOF + compile_prog "" "$xen_libs" + then + xen_ctrl_version=470 + xen=yes + + # Xen 4.2 elif cat > $TMPC <<EOF && #include <xenctrl.h> diff --git a/hw/xen_common.h b/hw/xen_common.h index 727757a..f6d4951 100644 --- a/hw/xen_common.h +++ b/hw/xen_common.h @@ -157,4 +157,20 @@ void destroy_hvm_domain(bool reboot); /* shutdown/destroy current domain because of an error */ void xen_shutdown_fatal_error(const char *fmt, ...) GCC_FMT_ATTR(1, 2); +#if CONFIG_XEN_CTRL_INTERFACE_VERSION < 470 +static inline int xen_domain_create(XenXC xc, uint32_t ssidref, + xen_domain_handle_t handle, uint32_t flags, + uint32_t *pdomid) +{ + return xc_domain_create(xc, ssidref, handle, flags, pdomid); +} +#else +static inline int xen_domain_create(XenXC xc, uint32_t ssidref, + xen_domain_handle_t handle, uint32_t flags, + uint32_t *pdomid) +{ + return xc_domain_create(xc, ssidref, handle, flags, pdomid, NULL); +} +#endif + #endif /* QEMU_HW_XEN_COMMON_H */ diff --git a/hw/xen_domainbuild.c b/hw/xen_domainbuild.c index db14974..f4d170a 100644 --- a/hw/xen_domainbuild.c +++ b/hw/xen_domainbuild.c @@ -234,7 +234,7 @@ int xen_domain_build_pv(const char *kernel, const char *ramdisk, int rc; memcpy(uuid, qemu_uuid, sizeof(uuid)); - rc = xc_domain_create(xen_xc, ssidref, uuid, flags, &xen_domid); + rc = xen_domain_create(xen_xc, ssidref, uuid, flags, &xen_domid); if (rc < 0) { fprintf(stderr, "xen: xc_domain_create() failed\n"); goto err; -- generated by git-patchbot for /home/xen/git/qemu-xen.git#stable-4.3 _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |