xen: make it possible to build without the Xen PV domain builder
Until the previous patch this relied on xc_fd(), which was only implemented for Xen 4.0 and earlier. Given this wasn't working since Xen 4.0 I have marked this as disabled by default. 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.campbell@citrix.com> Reviewed-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com> Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
This commit is contained in:
parent
228df5c91c
commit
64a7ad6fe3
15
configure
vendored
15
configure
vendored
@ -250,6 +250,7 @@ vnc_jpeg=""
|
||||
vnc_png=""
|
||||
xen=""
|
||||
xen_ctrl_version=""
|
||||
xen_pv_domain_build="no"
|
||||
xen_pci_passthrough=""
|
||||
linux_aio=""
|
||||
cap_ng=""
|
||||
@ -927,6 +928,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"
|
||||
@ -2229,6 +2234,12 @@ if test "$xen_pci_passthrough" != "no"; then
|
||||
fi
|
||||
fi
|
||||
|
||||
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
|
||||
|
||||
##########################################
|
||||
# libtool probe
|
||||
|
||||
@ -4848,6 +4859,7 @@ fi
|
||||
echo "xen support $xen"
|
||||
if test "$xen" = "yes" ; then
|
||||
echo "xen ctrl version $xen_ctrl_version"
|
||||
echo "pv dom build $xen_pv_domain_build"
|
||||
fi
|
||||
echo "brlapi support $brlapi"
|
||||
echo "bluez support $bluez"
|
||||
@ -5219,6 +5231,9 @@ fi
|
||||
if test "$xen" = "yes" ; then
|
||||
echo "CONFIG_XEN_BACKEND=y" >> $config_host_mak
|
||||
echo "CONFIG_XEN_CTRL_INTERFACE_VERSION=$xen_ctrl_version" >> $config_host_mak
|
||||
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
|
||||
|
@ -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
|
||||
|
@ -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,17 +43,27 @@ static void xen_init_pv(MachineState *machine)
|
||||
case XEN_ATTACH:
|
||||
/* nothing to do, xend handles everything */
|
||||
break;
|
||||
case XEN_CREATE:
|
||||
#ifdef CONFIG_XEN_PV_DOMAIN_BUILD
|
||||
case XEN_CREATE: {
|
||||
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);
|
||||
}
|
||||
break;
|
||||
}
|
||||
#endif
|
||||
case XEN_EMULATE:
|
||||
fprintf(stderr, "xen emulation not implemented (yet)\n");
|
||||
exit(1);
|
||||
break;
|
||||
default:
|
||||
fprintf(stderr, "unhandled xen_mode %d\n", xen_mode);
|
||||
exit(1);
|
||||
break;
|
||||
}
|
||||
|
||||
xen_be_register("console", &xen_console_ops);
|
||||
|
@ -505,6 +505,7 @@ static inline int xen_xc_domain_add_to_physmap(XenXC xch, uint32_t domid,
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_XEN_PV_DOMAIN_BUILD
|
||||
#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,
|
||||
@ -520,6 +521,7 @@ static inline int xen_domain_create(XenXC xc, uint32_t ssidref,
|
||||
return xc_domain_create(xc, ssidref, handle, flags, pdomid, NULL);
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if CONFIG_XEN_CTRL_INTERFACE_VERSION < 471
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user