[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH QEMU v3 2/2] xen: fix usage of xc_domain_create in domain builder
On Fri, 13 Nov 2015, Roger Pau Monne wrote: > 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> I'll apply it to my tree > Cc: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx> > Cc: qemu-devel@xxxxxxxxxx > --- > Changes since v2: > - Drop the last parameter to xen_create_domain since it's always NULL ATM > and was causing build problems with older Xen versions. > - Create two different inline functions instead of putting ifdefs inside of > a single one. > > Changes since v1: > - Add a compat layer to support previous libxc versions. > - Add machinery to detect current Xen unstable (4.7). > --- > configure | 17 +++++++++++++++++ > hw/xenpv/xen_domainbuild.c | 2 +- > include/hw/xen/xen_common.h | 16 ++++++++++++++++ > 3 files changed, 34 insertions(+), 1 deletion(-) > > diff --git a/configure b/configure > index 779623a..001982f 100755 > --- a/configure > +++ b/configure > @@ -1863,6 +1863,23 @@ EOF > 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.6 > + elif > + cat > $TMPC <<EOF && > +#include <xenctrl.h> > #include <xenstore.h> > #include <stdint.h> > #include <xen/hvm/hvm_info_table.h> > diff --git a/hw/xenpv/xen_domainbuild.c b/hw/xenpv/xen_domainbuild.c > index c0ab753..ac0e5ac 100644 > --- a/hw/xenpv/xen_domainbuild.c > +++ b/hw/xenpv/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; > diff --git a/include/hw/xen/xen_common.h b/include/hw/xen/xen_common.h > index 5923290..04bf6da 100644 > --- a/include/hw/xen/xen_common.h > +++ b/include/hw/xen/xen_common.h > @@ -417,4 +417,20 @@ static inline int xen_set_ioreq_server_state(XenXC xc, > domid_t dom, > > #endif > > +#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 */ > -- > 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 |