Until the previous patch this relied on xc_fd(), which was only implemented for Xen 4.0 and earlier.
I stopped short of disabling this by default, although I think there's a pretty strong argument for doing so. Removing this support drops the use of a bunch of symbols from libxenctrl, specifically: - xc_domain_create - xc_domain_destroy - xc_domain_getinfo - xc_domain_max_vcpus - xc_domain_setmaxmem - xc_domain_unpause - xc_evtchn_alloc_unbound - xc_linux_build This is another step towards only using Xen libraries which provide a stable inteface. Signed-off-by: Ian Campbell <ian.campb...@citrix.com> --- configure | 17 +++++++++++++++++ hw/xenpv/Makefile.objs | 4 +++- hw/xenpv/xen_machine_pv.c | 14 ++++++++++---- 3 files changed, 30 insertions(+), 5 deletions(-) diff --git a/configure b/configure index 508b157..534d280 100755 --- a/configure +++ b/configure @@ -910,6 +910,10 @@ for opt do ;; --enable-xen-pci-passthrough) xen_pci_passthrough="yes" ;; + --disable-xen-pv-domain-build) xen_pv_domain_build="no" + ;; + --enable-xen-pv-domain-build) xen_pv_domain_build="yes" + ;; --disable-brlapi) brlapi="no" ;; --enable-brlapi) brlapi="yes" @@ -2148,6 +2152,15 @@ if test "$xen_pci_passthrough" != "no"; then fi fi +if test "$xen_pv_domain_build" != "no"; then + if test "$xen_pv_domain_build" = "yes" && + test "$xen" != "yes"; then + error_exit "User requested Xen PV domain builder support" \ + "which requires Xen support." + fi + xen_pv_domain_build=$xen +fi + ########################################## # libtool probe @@ -4429,6 +4442,7 @@ echo "xen support $xen" if test "$xen" = "yes" ; then echo " stable libs $xenstablelibs" echo " ctrl version $xen_ctrl_version" + echo " PV dom build $xen_pv_domain_build" fi echo "brlapi support $brlapi" echo "bluez support $bluez" @@ -4764,6 +4778,9 @@ if test "$xen" = "yes" ; then if test "$xenstablelibs" = "yes" ; then echo "CONFIG_XEN_STABLE_LIBS=y" >> $config_host_mak fi + if test "$xen_pv_domain_build" = "yes" ; then + echo "CONFIG_XEN_PV_DOMAIN_BUILD=y" >> $config_host_mak + fi fi if test "$linux_aio" = "yes" ; then echo "CONFIG_LINUX_AIO=y" >> $config_host_mak diff --git a/hw/xenpv/Makefile.objs b/hw/xenpv/Makefile.objs index 49f6e9e..bbf5873 100644 --- a/hw/xenpv/Makefile.objs +++ b/hw/xenpv/Makefile.objs @@ -1,2 +1,4 @@ # Xen PV machine support -obj-$(CONFIG_XEN) += xen_domainbuild.o xen_machine_pv.o +obj-$(CONFIG_XEN) += xen_machine_pv.o +# Xen PV machine builder support +obj-$(CONFIG_XEN_PV_DOMAIN_BUILD) += xen_domainbuild.o diff --git a/hw/xenpv/xen_machine_pv.c b/hw/xenpv/xen_machine_pv.c index 2e545d2..d19d29f 100644 --- a/hw/xenpv/xen_machine_pv.c +++ b/hw/xenpv/xen_machine_pv.c @@ -30,9 +30,6 @@ static void xen_init_pv(MachineState *machine) { - const char *kernel_filename = machine->kernel_filename; - const char *kernel_cmdline = machine->kernel_cmdline; - const char *initrd_filename = machine->initrd_filename; DriveInfo *dinfo; int i; @@ -46,13 +43,22 @@ static void xen_init_pv(MachineState *machine) case XEN_ATTACH: /* nothing to do, xend handles everything */ break; - case XEN_CREATE: + case XEN_CREATE: { +#ifdef CONFIG_XEN_PV_DOMAIN_BUILD + const char *kernel_filename = machine->kernel_filename; + const char *kernel_cmdline = machine->kernel_cmdline; + const char *initrd_filename = machine->initrd_filename; if (xen_domain_build_pv(kernel_filename, initrd_filename, kernel_cmdline) < 0) { fprintf(stderr, "xen pv domain creation failed\n"); exit(1); } +#else + fprintf(stderr, "xen pv domain creation not supported\n"); + exit (1); +#endif break; + } case XEN_EMULATE: fprintf(stderr, "xen emulation not implemented (yet)\n"); exit(1); -- 2.1.4 _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel