]> xenbits.xensource.com Git - libvirt.git/commitdiff
libxl: add USB to hostdev domcapabilities
authorJim Fehlig <jfehlig@suse.com>
Fri, 17 Jun 2016 15:47:34 +0000 (16:47 +0100)
committerJim Fehlig <jfehlig@suse.com>
Fri, 17 Jun 2016 20:25:02 +0000 (14:25 -0600)
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 <jfehlig@suse.com>
Signed-off-by: Joao Martins <joao.m.martins@oracle.com>
src/libxl/libxl_capabilities.c
tests/domaincapsschemadata/libxl-xenfv-usb.xml [new file with mode: 0644]
tests/domaincapsschemadata/libxl-xenpv-usb.xml [new file with mode: 0644]
tests/domaincapstest.c

index 45f098826adab7a97ee85cc5145d8192847ab286..0145116e984c59cb6286c1b188e47bc5f4ef2600 100644 (file)
@@ -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 (file)
index 0000000..c071d12
--- /dev/null
@@ -0,0 +1,69 @@
+<domainCapabilities>
+  <path>/usr/bin/qemu-system-x86_64</path>
+  <domain>xen</domain>
+  <machine>xenfv</machine>
+  <arch>x86_64</arch>
+  <vcpu max='128'/>
+  <os supported='yes'>
+    <loader supported='yes'>
+      <value>/usr/lib/xen/boot/hvmloader</value>
+      <value>/usr/lib/xen/boot/ovmf.bin</value>
+      <enum name='type'>
+        <value>rom</value>
+        <value>pflash</value>
+      </enum>
+      <enum name='readonly'>
+        <value>yes</value>
+      </enum>
+    </loader>
+  </os>
+  <devices>
+    <disk supported='yes'>
+      <enum name='diskDevice'>
+        <value>disk</value>
+        <value>cdrom</value>
+      </enum>
+      <enum name='bus'>
+        <value>ide</value>
+        <value>scsi</value>
+        <value>xen</value>
+      </enum>
+    </disk>
+    <graphics supported='yes'>
+      <enum name='type'>
+        <value>sdl</value>
+        <value>vnc</value>
+        <value>spice</value>
+      </enum>
+    </graphics>
+    <video supported='yes'>
+      <enum name='modelType'>
+        <value>vga</value>
+        <value>cirrus</value>
+        <value>xen</value>
+      </enum>
+    </video>
+    <hostdev supported='yes'>
+      <enum name='mode'>
+        <value>subsystem</value>
+      </enum>
+      <enum name='startupPolicy'>
+        <value>default</value>
+        <value>mandatory</value>
+        <value>requisite</value>
+        <value>optional</value>
+      </enum>
+      <enum name='subsysType'>
+        <value>usb</value>
+        <value>pci</value>
+      </enum>
+      <enum name='capsType'/>
+      <enum name='pciBackend'>
+        <value>xen</value>
+      </enum>
+    </hostdev>
+  </devices>
+  <features>
+    <gic supported='no'/>
+  </features>
+</domainCapabilities>
diff --git a/tests/domaincapsschemadata/libxl-xenpv-usb.xml b/tests/domaincapsschemadata/libxl-xenpv-usb.xml
new file mode 100644 (file)
index 0000000..4dd07bd
--- /dev/null
@@ -0,0 +1,59 @@
+<domainCapabilities>
+  <path>/usr/bin/qemu-system-x86_64</path>
+  <domain>xen</domain>
+  <machine>xenpv</machine>
+  <arch>x86_64</arch>
+  <vcpu max='512'/>
+  <os supported='yes'>
+    <loader supported='no'/>
+  </os>
+  <devices>
+    <disk supported='yes'>
+      <enum name='diskDevice'>
+        <value>disk</value>
+        <value>cdrom</value>
+      </enum>
+      <enum name='bus'>
+        <value>ide</value>
+        <value>scsi</value>
+        <value>xen</value>
+      </enum>
+    </disk>
+    <graphics supported='yes'>
+      <enum name='type'>
+        <value>sdl</value>
+        <value>vnc</value>
+        <value>spice</value>
+      </enum>
+    </graphics>
+    <video supported='yes'>
+      <enum name='modelType'>
+        <value>vga</value>
+        <value>cirrus</value>
+        <value>xen</value>
+      </enum>
+    </video>
+    <hostdev supported='yes'>
+      <enum name='mode'>
+        <value>subsystem</value>
+      </enum>
+      <enum name='startupPolicy'>
+        <value>default</value>
+        <value>mandatory</value>
+        <value>requisite</value>
+        <value>optional</value>
+      </enum>
+      <enum name='subsysType'>
+        <value>usb</value>
+        <value>pci</value>
+      </enum>
+      <enum name='capsType'/>
+      <enum name='pciBackend'>
+        <value>xen</value>
+      </enum>
+    </hostdev>
+  </devices>
+  <features>
+    <gic supported='no'/>
+  </features>
+</domainCapabilities>
index 9fb2c974ec61e5d844dfbfd3f92b594d1c67cddf..ae311464d6e936d78bcbaff9cea1c19f574af2b5 100644 (file)
@@ -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 */