From 8bab1e7c057b5f62c25cba7439a05ed57f0c735e Mon Sep 17 00:00:00 2001 From: Jim Fehlig Date: Fri, 17 Jun 2016 16:47:34 +0100 Subject: [PATCH] libxl: add USB to hostdev domcapabilities Commit 2a58ed0b added support for creating guests with USB hostdevs. Commit fc21d10 later added support for hotplut of USB hostdevs. Advertise support for USB hostdevs in the domcapabilities. In addition add the appropriate caps for USB support on domaincapstest when libvirt is built on a Xen with LIBXL_HAVE_PVUSB. Otherwise domaincapstest would fail i.e. testing the wrong domain capabilities. Signed-off-by: Jim Fehlig Signed-off-by: Joao Martins --- src/libxl/libxl_capabilities.c | 5 ++ .../domaincapsschemadata/libxl-xenfv-usb.xml | 69 +++++++++++++++++++ .../domaincapsschemadata/libxl-xenpv-usb.xml | 59 ++++++++++++++++ tests/domaincapstest.c | 12 +++- 4 files changed, 143 insertions(+), 2 deletions(-) create mode 100644 tests/domaincapsschemadata/libxl-xenfv-usb.xml create mode 100644 tests/domaincapsschemadata/libxl-xenpv-usb.xml diff --git a/src/libxl/libxl_capabilities.c b/src/libxl/libxl_capabilities.c index 45f098826a..0145116e98 100644 --- a/src/libxl/libxl_capabilities.c +++ b/src/libxl/libxl_capabilities.c @@ -492,6 +492,11 @@ libxlMakeDomainDeviceHostdevCaps(virDomainCapsDeviceHostdevPtr dev) VIR_DOMAIN_CAPS_ENUM_SET(dev->subsysType, VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_PCI); +#ifdef LIBXL_HAVE_PVUSB + VIR_DOMAIN_CAPS_ENUM_SET(dev->subsysType, + VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_USB); +#endif + /* No virDomainHostdevCapsType for libxl */ virDomainCapsEnumClear(&dev->capsType); diff --git a/tests/domaincapsschemadata/libxl-xenfv-usb.xml b/tests/domaincapsschemadata/libxl-xenfv-usb.xml new file mode 100644 index 0000000000..c071d1240b --- /dev/null +++ b/tests/domaincapsschemadata/libxl-xenfv-usb.xml @@ -0,0 +1,69 @@ + + /usr/bin/qemu-system-x86_64 + xen + xenfv + x86_64 + + + + /usr/lib/xen/boot/hvmloader + /usr/lib/xen/boot/ovmf.bin + + rom + pflash + + + yes + + + + + + + disk + cdrom + + + ide + scsi + xen + + + + + sdl + vnc + spice + + + + + + subsystem + + + default + mandatory + requisite + optional + + + usb + pci + + + + xen + + + + + + + diff --git a/tests/domaincapsschemadata/libxl-xenpv-usb.xml b/tests/domaincapsschemadata/libxl-xenpv-usb.xml new file mode 100644 index 0000000000..4dd07bd966 --- /dev/null +++ b/tests/domaincapsschemadata/libxl-xenpv-usb.xml @@ -0,0 +1,59 @@ + + /usr/bin/qemu-system-x86_64 + xen + xenpv + x86_64 + + + + + + + + disk + cdrom + + + ide + scsi + xen + + + + + sdl + vnc + spice + + + + + + subsystem + + + default + mandatory + requisite + optional + + + usb + pci + + + + xen + + + + + + + diff --git a/tests/domaincapstest.c b/tests/domaincapstest.c index 9fb2c974ec..ae311464d6 100644 --- a/tests/domaincapstest.c +++ b/tests/domaincapstest.c @@ -367,9 +367,17 @@ mymain(void) #if WITH_LIBXL - DO_TEST_LIBXL("libxl-xenpv", "/usr/bin/qemu-system-x86_64", +# ifdef LIBXL_HAVE_PVUSB +# define LIBXL_XENPV_CAPS "libxl-xenpv-usb" +# define LIBXL_XENFV_CAPS "libxl-xenfv-usb" +# else +# define LIBXL_XENPV_CAPS "libxl-xenpv" +# define LIBXL_XENFV_CAPS "libxl-xenfv" +# endif + + DO_TEST_LIBXL(LIBXL_XENPV_CAPS, "/usr/bin/qemu-system-x86_64", "xenpv", "x86_64", VIR_DOMAIN_VIRT_XEN); - DO_TEST_LIBXL("libxl-xenfv", "/usr/bin/qemu-system-x86_64", + DO_TEST_LIBXL(LIBXL_XENFV_CAPS, "/usr/bin/qemu-system-x86_64", "xenfv", "x86_64", VIR_DOMAIN_VIRT_XEN); #endif /* WITH_LIBXL */ -- 2.39.5