]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
Learn to use spicevmc as a redirection type for usb-redir
authorMarc-André Lureau <marcandre.lureau@redhat.com>
Fri, 2 Sep 2011 15:19:11 +0000 (23:19 +0800)
committerDaniel Veillard <veillard@redhat.com>
Fri, 2 Sep 2011 15:39:03 +0000 (23:39 +0800)
src/conf/domain_conf.c
src/conf/domain_conf.h
tests/qemuxml2argvdata/qemuxml2argv-usb-redir.args
tests/qemuxml2argvdata/qemuxml2argv-usb-redir.xml
tests/qemuxml2argvtest.c

index aadf62aa3a730c51f2692d8a5d4002cc0db5c9b1..a55ed61785cea2279a1e6c7a249cf7e61c28195f 100644 (file)
@@ -290,7 +290,8 @@ VIR_ENUM_IMPL(virDomainChrTcpProtocol, VIR_DOMAIN_CHR_TCP_PROTOCOL_LAST,
 
 VIR_ENUM_IMPL(virDomainChrSpicevmc, VIR_DOMAIN_CHR_SPICEVMC_LAST,
               "vdagent",
-              "smartcard")
+              "smartcard",
+              "usbredir")
 
 VIR_ENUM_IMPL(virDomainSmartcard, VIR_DOMAIN_SMARTCARD_TYPE_LAST,
               "host",
@@ -5513,6 +5514,10 @@ virDomainRedirdevDefParseXML(const xmlNodePtr node,
         cur = cur->next;
     }
 
+    if (def->source.chr.type == VIR_DOMAIN_CHR_TYPE_SPICEVMC) {
+        def->source.chr.data.spicevmc = VIR_DOMAIN_CHR_SPICEVMC_USBREDIR;
+    }
+
 cleanup:
     VIR_FREE(bus);
     VIR_FREE(type);
index ab2a38c2266c115963e1471efa6f099d9a2d764a..ccd95479ef8d7da71939696a1ae401dcc3e7e496 100644 (file)
@@ -538,6 +538,7 @@ enum virDomainChrTcpProtocol {
 enum virDomainChrSpicevmcName {
     VIR_DOMAIN_CHR_SPICEVMC_VDAGENT,
     VIR_DOMAIN_CHR_SPICEVMC_SMARTCARD,
+    VIR_DOMAIN_CHR_SPICEVMC_USBREDIR,
 
     VIR_DOMAIN_CHR_SPICEVMC_LAST,
 };
index 445aa5fc44e5d13193009f8f6d20030079e4c2e6..4d4f30a1f6d8fe5b0b7ef5c0a4a63150a7cb41ab 100644 (file)
@@ -5,4 +5,6 @@ LC_ALL=C PATH=/bin HOME=/home/test USER=test LOGNAME=test /usr/bin/qemu -S -M pc
 -device ich9-usb-uhci3,masterbus=usb.0,firstport=4,bus=pci.0,multifunction=on,addr=0x4.0x2 \
 -chardev socket,id=charredir0,host=localhost,port=4000 \
 -device usb-redir,chardev=charredir0,id=redir0 \
+-chardev spicevmc,id=charredir1,name=usbredir \
+-device usb-redir,chardev=charredir1,id=redir1 \
 -device virtio-balloon-pci,id=balloon0,bus=pci.0,multifunction=on,addr=0x3.0x0
index d644216d026381becc3595adffd29f2f4a7f8d53..c73e569f2b3b60d5a6b5df98e2b81899c5734329 100644 (file)
@@ -33,6 +33,8 @@
       <source mode='connect' host='localhost' service='4000'/>
       <protocol type='raw'/>
     </redirdev>
+    <redirdev bus='usb' type='spicevmc'>
+    </redirdev>
     <memballoon model='virtio'/>
   </devices>
 </domain>
index aa7534100cff422219fee1a39b7bb9763d60d65f..4c2754d5021f5076c9f9d4d544bffbc90500748d 100644 (file)
@@ -510,7 +510,8 @@ mymain(void)
     DO_TEST("usb-redir", false,
             QEMU_CAPS_CHARDEV, QEMU_CAPS_DEVICE, QEMU_CAPS_NODEFCONFIG,
             QEMU_CAPS_PCI_MULTIFUNCTION, QEMU_CAPS_USB_HUB,
-            QEMU_CAPS_ICH9_USB_EHCI1, QEMU_CAPS_USB_REDIR);
+            QEMU_CAPS_ICH9_USB_EHCI1, QEMU_CAPS_USB_REDIR,
+            QEMU_CAPS_SPICE, QEMU_CAPS_CHARDEV_SPICEVMC);
 
     DO_TEST("smbios", false, QEMU_CAPS_SMBIOS_TYPE);