[libvirt] [PATCH libvirt] domain: add implicit USB controller
Osier Yang
jyang at redhat.com
Wed Feb 8 07:26:49 UTC 2012
On 2012年02月08日 08:48, Marc-André Lureau wrote:
> Some tools, such as virt-manager, prefers having the default USB
> controller explicit in the XML document. This patch makes sure there
> is one. With this patch, it is now possible to switch from USB1 to
> USB2 from the release 0.9.1 of virt-manager.
>
> Fix tests to pass with this change.
> ---
> src/conf/domain_conf.c | 93 ++++++++++---------
> src/qemu/qemu_command.c | 8 ++-
> tests/define-dev-segfault | 1 +
> tests/domainsnapshotxml2xmlout/disk_snapshot.xml | 1 +
> tests/domainsnapshotxml2xmlout/full_domain.xml | 1 +
> tests/domainsnapshotxml2xmlout/metadata.xml | 1 +
> tests/qemuxml2argvdata/qemuxml2argv-bios.xml | 1 +
> .../qemuxml2argvdata/qemuxml2argv-blkdeviotune.xml | 1 +
> .../qemuxml2argv-blkiotune-device.xml | 1 +
> tests/qemuxml2argvdata/qemuxml2argv-blkiotune.xml | 1 +
> tests/qemuxml2argvdata/qemuxml2argv-boot-cdrom.xml | 1 +
> .../qemuxml2argv-boot-complex-bootindex.xml | 1 +
> .../qemuxml2argvdata/qemuxml2argv-boot-complex.xml | 1 +
> .../qemuxml2argvdata/qemuxml2argv-boot-floppy.xml | 1 +
> ...uxml2argv-boot-menu-disable-drive-bootindex.xml | 1 +
> .../qemuxml2argv-boot-menu-disable-drive.xml | 1 +
> .../qemuxml2argv-boot-menu-disable.xml | 1 +
> .../qemuxml2argv-boot-menu-enable.xml | 1 +
> tests/qemuxml2argvdata/qemuxml2argv-boot-multi.xml | 1 +
> .../qemuxml2argvdata/qemuxml2argv-boot-network.xml | 1 +
> tests/qemuxml2argvdata/qemuxml2argv-boot-order.xml | 1 +
> tests/qemuxml2argvdata/qemuxml2argv-bootloader.xml | 1 +
> .../qemuxml2argv-channel-guestfwd.xml | 1 +
> .../qemuxml2argv-channel-spicevmc-old.xml | 1 +
> .../qemuxml2argv-channel-spicevmc.xml | 1 +
> .../qemuxml2argv-channel-virtio-auto.xml | 1 +
> .../qemuxml2argv-channel-virtio.xml | 1 +
> .../qemuxml2argvdata/qemuxml2argv-clock-france.xml | 1 +
> .../qemuxml2argv-clock-localtime.xml | 1 +
> tests/qemuxml2argvdata/qemuxml2argv-clock-utc.xml | 1 +
> .../qemuxml2argv-clock-variable.xml | 1 +
> .../qemuxml2argv-console-compat-auto.xml | 1 +
> .../qemuxml2argv-console-compat-chardev.xml | 1 +
> .../qemuxml2argv-console-compat.xml | 1 +
> .../qemuxml2argv-console-virtio-many.xml | 1 +
> .../qemuxml2argv-console-virtio.xml | 1 +
> .../qemuxml2argv-cpu-host-kvmclock.xml | 1 +
> .../qemuxml2argvdata/qemuxml2argv-cpu-kvmclock.xml | 1 +
> tests/qemuxml2argvdata/qemuxml2argv-cputune.xml | 1 +
> tests/qemuxml2argvdata/qemuxml2argv-disk-aio.xml | 1 +
> .../qemuxml2argv-disk-cdrom-empty.xml | 1 +
> tests/qemuxml2argvdata/qemuxml2argv-disk-cdrom.xml | 1 +
> .../qemuxml2argv-disk-copy_on_read.xml | 1 +
> .../qemuxml2argv-disk-drive-boot-cdrom.xml | 1 +
> .../qemuxml2argv-disk-drive-boot-disk.xml | 1 +
> .../qemuxml2argv-disk-drive-cache-directsync.xml | 1 +
> .../qemuxml2argv-disk-drive-cache-unsafe.xml | 1 +
> .../qemuxml2argv-disk-drive-cache-v1-none.xml | 1 +
> .../qemuxml2argv-disk-drive-cache-v1-wb.xml | 1 +
> .../qemuxml2argv-disk-drive-cache-v1-wt.xml | 1 +
> .../qemuxml2argv-disk-drive-cache-v2-none.xml | 1 +
> .../qemuxml2argv-disk-drive-cache-v2-wb.xml | 1 +
> .../qemuxml2argv-disk-drive-cache-v2-wt.xml | 1 +
> ...muxml2argv-disk-drive-error-policy-enospace.xml | 1 +
> .../qemuxml2argv-disk-drive-error-policy-stop.xml | 1 +
> ...rgv-disk-drive-error-policy-wreport-rignore.xml | 1 +
> .../qemuxml2argv-disk-drive-fat.xml | 1 +
> .../qemuxml2argv-disk-drive-fmt-qcow.xml | 1 +
> .../qemuxml2argv-disk-drive-network-nbd.xml | 1 +
> .../qemuxml2argv-disk-drive-network-rbd-auth.xml | 1 +
> ...emuxml2argv-disk-drive-network-rbd-ceph-env.xml | 1 +
> .../qemuxml2argv-disk-drive-network-rbd.xml | 1 +
> .../qemuxml2argv-disk-drive-network-sheepdog.xml | 1 +
> .../qemuxml2argv-disk-drive-no-boot.xml | 1 +
> .../qemuxml2argv-disk-drive-readonly-disk.xml | 1 +
> .../qemuxml2argv-disk-drive-readonly-no-device.xml | 1 +
> .../qemuxml2argv-disk-drive-shared.xml | 1 +
> .../qemuxml2argvdata/qemuxml2argv-disk-floppy.xml | 1 +
> .../qemuxml2argv-disk-ioeventfd.xml | 1 +
> tests/qemuxml2argvdata/qemuxml2argv-disk-many.xml | 1 +
> tests/qemuxml2argvdata/qemuxml2argv-disk-order.xml | 1 +
> .../qemuxml2argv-disk-sata-device.xml | 1 +
> .../qemuxml2argv-disk-scsi-device-auto.xml | 1 +
> .../qemuxml2argv-disk-scsi-device.xml | 1 +
> .../qemuxml2argv-disk-scsi-virtio-scsi.xml | 1 +
> .../qemuxml2argv-disk-scsi-vscsi.xml | 1 +
> .../qemuxml2argv-disk-snapshot.xml | 1 +
> .../qemuxml2argv-disk-transient.xml | 1 +
> tests/qemuxml2argvdata/qemuxml2argv-disk-usb.xml | 1 +
> .../qemuxml2argvdata/qemuxml2argv-disk-virtio.xml | 1 +
> .../qemuxml2argvdata/qemuxml2argv-disk-xenvbd.xml | 1 +
> .../qemuxml2argv-encrypted-disk.xml | 1 +
> tests/qemuxml2argvdata/qemuxml2argv-event_idx.xml | 1 +
> .../qemuxml2argv-floppy-drive-fat.xml | 1 +
> tests/qemuxml2argvdata/qemuxml2argv-fs9p.xml | 1 +
> .../qemuxml2argv-graphics-listen-network.xml | 1 +
> .../qemuxml2argv-graphics-listen-network2.xml | 1 +
> .../qemuxml2argv-graphics-sdl-fullscreen.xml | 1 +
> .../qemuxml2argvdata/qemuxml2argv-graphics-sdl.xml | 1 +
> .../qemuxml2argv-graphics-spice-compression.xml | 1 +
> .../qemuxml2argv-graphics-spice-qxl-vga.xml | 1 +
> .../qemuxml2argv-graphics-spice.xml | 1 +
> .../qemuxml2argv-graphics-vnc-sasl.xml | 1 +
> .../qemuxml2argv-graphics-vnc-socket.xml | 1 +
> .../qemuxml2argv-graphics-vnc-tls.xml | 1 +
> .../qemuxml2argvdata/qemuxml2argv-graphics-vnc.xml | 1 +
> .../qemuxml2argv-hostdev-pci-address.xml | 1 +
> .../qemuxml2argv-hostdev-usb-address.xml | 1 +
> tests/qemuxml2argvdata/qemuxml2argv-hugepages.xml | 1 +
> .../qemuxml2argv-input-usbmouse-addr.xml | 1 +
> .../qemuxml2argv-input-usbmouse.xml | 1 +
> .../qemuxml2argv-input-usbtablet.xml | 1 +
> tests/qemuxml2argvdata/qemuxml2argv-input-xen.xml | 1 +
> tests/qemuxml2argvdata/qemuxml2argv-kvmclock.xml | 1 +
> tests/qemuxml2argvdata/qemuxml2argv-lease.xml | 1 +
> tests/qemuxml2argvdata/qemuxml2argv-memtune.xml | 1 +
> tests/qemuxml2argvdata/qemuxml2argv-migrate.xml | 1 +
> tests/qemuxml2argvdata/qemuxml2argv-minimal.xml | 1 +
> tests/qemuxml2argvdata/qemuxml2argv-misc-acpi.xml | 1 +
> .../qemuxml2argv-misc-no-reboot.xml | 1 +
> tests/qemuxml2argvdata/qemuxml2argv-misc-uuid.xml | 1 +
> .../qemuxml2argvdata/qemuxml2argv-monitor-json.xml | 1 +
> .../qemuxml2argv-net-bandwidth.xml | 1 +
> .../qemuxml2argv-net-eth-ifname.xml | 1 +
> tests/qemuxml2argvdata/qemuxml2argv-net-eth.xml | 1 +
> tests/qemuxml2argvdata/qemuxml2argv-net-user.xml | 1 +
> .../qemuxml2argv-net-virtio-device.xml | 1 +
> .../qemuxml2argv-net-virtio-netdev.xml | 1 +
> .../qemuxml2argv-net-virtio-network-portgroup.xml | 1 +
> tests/qemuxml2argvdata/qemuxml2argv-net-virtio.xml | 1 +
> .../qemuxml2argv-nographics-vga.xml | 1 +
> .../qemuxml2argvdata/qemuxml2argv-parallel-tcp.xml | 1 +
> tests/qemuxml2argvdata/qemuxml2argv-pci-rom.xml | 1 +
> .../qemuxml2argv-qemu-ns-no-env.xml | 1 +
> tests/qemuxml2argvdata/qemuxml2argv-restore-v1.xml | 1 +
> .../qemuxml2argv-restore-v2-fd.xml | 1 +
> tests/qemuxml2argvdata/qemuxml2argv-restore-v2.xml | 1 +
> .../qemuxml2argv-seclabel-dynamic-baselabel.xml | 1 +
> .../qemuxml2argv-seclabel-dynamic-override.xml | 1 +
> .../qemuxml2argv-seclabel-none.xml | 1 +
> .../qemuxml2argv-seclabel-static.xml | 1 +
> .../qemuxml2argv-serial-dev-chardev.xml | 1 +
> tests/qemuxml2argvdata/qemuxml2argv-serial-dev.xml | 1 +
> .../qemuxml2argv-serial-file-chardev.xml | 1 +
> .../qemuxml2argvdata/qemuxml2argv-serial-file.xml | 1 +
> .../qemuxml2argv-serial-many-chardev.xml | 1 +
> .../qemuxml2argvdata/qemuxml2argv-serial-many.xml | 1 +
> .../qemuxml2argv-serial-pty-chardev.xml | 1 +
> tests/qemuxml2argvdata/qemuxml2argv-serial-pty.xml | 1 +
> .../qemuxml2argv-serial-tcp-chardev.xml | 1 +
> .../qemuxml2argv-serial-tcp-telnet-chardev.xml | 1 +
> .../qemuxml2argv-serial-tcp-telnet.xml | 1 +
> tests/qemuxml2argvdata/qemuxml2argv-serial-tcp.xml | 1 +
> .../qemuxml2argv-serial-udp-chardev.xml | 1 +
> tests/qemuxml2argvdata/qemuxml2argv-serial-udp.xml | 1 +
> .../qemuxml2argv-serial-unix-chardev.xml | 1 +
> .../qemuxml2argvdata/qemuxml2argv-serial-unix.xml | 1 +
> tests/qemuxml2argvdata/qemuxml2argv-serial-vc.xml | 1 +
> tests/qemuxml2argvdata/qemuxml2argv-smp.xml | 1 +
> tests/qemuxml2argvdata/qemuxml2argv-sound.xml | 1 +
> tests/qemuxml2argvdata/qemuxml2argv-virtio-lun.xml | 1 +
> tests/qemuxml2argvdata/qemuxml2argv-watchdog.xml | 1 +
> .../qemuxml2xmlout-balloon-device-auto.xml | 1 +
> .../qemuxml2xmlout-channel-virtio-auto.xml | 1 +
> .../qemuxml2xmlout-console-compat-auto.xml | 1 +
> .../qemuxml2xmlout-console-virtio.xml | 1 +
> .../qemuxml2xmlout-disk-cdrom-empty.xml | 1 +
> .../qemuxml2xmlout-disk-scsi-device-auto.xml | 1 +
> .../qemuxml2xmlout-graphics-listen-network2.xml | 1 +
> .../qemuxml2xmlout-graphics-spice-timeout.xml | 1 +
> .../qemuxml2xmloutdata/qemuxml2xmlout-metadata.xml | 1 +
> .../qemuxml2xmlout-serial-target-port-auto.xml | 1 +
> 162 files changed, 216 insertions(+), 45 deletions(-)
>
> diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
> index 6949ece..a1b5f8f 100644
> --- a/src/conf/domain_conf.c
> +++ b/src/conf/domain_conf.c
> @@ -619,7 +619,6 @@ VIR_ENUM_IMPL(virDomainStartupPolicy, VIR_DOMAIN_STARTUP_POLICY_LAST,
> #define VIR_DOMAIN_XML_WRITE_FLAGS VIR_DOMAIN_XML_SECURE
> #define VIR_DOMAIN_XML_READ_FLAGS VIR_DOMAIN_XML_INACTIVE
>
> -
> void
> virBlkioDeviceWeightArrayClear(virBlkioDeviceWeightPtr deviceWeights,
> int ndevices)
> @@ -7091,6 +7090,49 @@ error:
> }
>
>
> +static int virDomainDefMaybeAddController(virDomainDefPtr def,
> + int type,
> + int idx)
> +{
> + int found = 0;
> + int i;
> + virDomainControllerDefPtr cont;
> +
> + for (i = 0 ; (i< def->ncontrollers)&& !found; i++) {
> + if (def->controllers[i]->type == type&&
> + def->controllers[i]->idx == idx)
> + found = 1;
> + }
> +
> + if (found)
> + return 0;
> +
> + if (VIR_ALLOC(cont)< 0) {
> + virReportOOMError();
> + return -1;
> + }
> +
> + cont->type = type;
> + cont->idx = idx;
> + cont->model = -1;
> +
> + if (cont->type == VIR_DOMAIN_CONTROLLER_TYPE_VIRTIO_SERIAL) {
> + cont->opts.vioserial.ports = -1;
> + cont->opts.vioserial.vectors = -1;
> + }
> +
> +
> + if (VIR_REALLOC_N(def->controllers, def->ncontrollers+1)< 0) {
> + VIR_FREE(cont);
> + virReportOOMError();
> + return -1;
> + }
> + def->controllers[def->ncontrollers] = cont;
> + def->ncontrollers++;
> +
> + return 0;
> +}
> +
> static virDomainDefPtr virDomainDefParseXML(virCapsPtr caps,
> xmlDocPtr xml,
> xmlNodePtr root,
> @@ -7649,6 +7691,12 @@ static virDomainDefPtr virDomainDefParseXML(virCapsPtr caps,
> }
> VIR_FREE(nodes);
>
> + if (def->virtType == VIR_DOMAIN_VIRT_QEMU ||
> + def->virtType == VIR_DOMAIN_VIRT_KQEMU ||
> + def->virtType == VIR_DOMAIN_VIRT_KVM)
> + if (virDomainDefMaybeAddController(def, VIR_DOMAIN_CONTROLLER_TYPE_USB, 0)< 0)
> + goto error;
> +
> /* analysis of the resource leases */
> if ((n = virXPathNodeSet("./devices/lease", ctxt,&nodes))< 0) {
> virDomainReportError(VIR_ERR_INTERNAL_ERROR,
> @@ -9378,49 +9426,6 @@ cleanup:
> }
>
>
> -static int virDomainDefMaybeAddController(virDomainDefPtr def,
> - int type,
> - int idx)
> -{
> - int found = 0;
> - int i;
> - virDomainControllerDefPtr cont;
> -
> - for (i = 0 ; (i< def->ncontrollers)&& !found; i++) {
> - if (def->controllers[i]->type == type&&
> - def->controllers[i]->idx == idx)
> - found = 1;
> - }
> -
> - if (found)
> - return 0;
> -
> - if (VIR_ALLOC(cont)< 0) {
> - virReportOOMError();
> - return -1;
> - }
> -
> - cont->type = type;
> - cont->idx = idx;
> - cont->model = -1;
> -
> - if (cont->type == VIR_DOMAIN_CONTROLLER_TYPE_VIRTIO_SERIAL) {
> - cont->opts.vioserial.ports = -1;
> - cont->opts.vioserial.vectors = -1;
> - }
> -
> -
> - if (VIR_REALLOC_N(def->controllers, def->ncontrollers+1)< 0) {
> - VIR_FREE(cont);
> - virReportOOMError();
> - return -1;
> - }
> - def->controllers[def->ncontrollers] = cont;
> - def->ncontrollers++;
> -
> - return 0;
> -}
> -
> static int virDomainDefAddDiskControllersForType(virDomainDefPtr def,
> int controllerType,
> int diskBus)
> diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
> index 0e26df1..e171641 100644
> --- a/src/qemu/qemu_command.c
> +++ b/src/qemu/qemu_command.c
> @@ -7621,7 +7621,13 @@ virDomainDefPtr qemuParseCommandLine(virCapsPtr caps,
> WANT_VALUE();
> /* ignore, generted on the fly */
> } else if (STREQ(arg, "-usb")) {
> - /* ignore, always added by libvirt */
> + virDomainControllerDefPtr ctldef;
> + if (VIR_ALLOC(ctldef)< 0)
> + goto no_memory;
> + ctldef->type = VIR_DOMAIN_CONTROLLER_TYPE_USB;
> + ctldef->idx = 0;
> + ctldef->model = -1;
> + virDomainControllerInsert(def, ctldef);
> } else if (STREQ(arg, "-pidfile")) {
> WANT_VALUE();
> if (pidfile)
> diff --git a/tests/define-dev-segfault b/tests/define-dev-segfault
> index 3feff46..0a0532b 100755
> --- a/tests/define-dev-segfault
> +++ b/tests/define-dev-segfault
> @@ -36,6 +36,7 @@ cat<<\EOF> D.xml || fail=1
> <on_crash>destroy</on_crash>
> <devices>
> <emulator>/usr/bin/qemu-kvm</emulator>
> +<controller type='usb' index='0'/>
> <serial type='pty'>
> <target port='0'/>
> </serial>
> diff --git a/tests/domainsnapshotxml2xmlout/disk_snapshot.xml b/tests/domainsnapshotxml2xmlout/disk_snapshot.xml
> index a0a0965..91dba79 100644
> --- a/tests/domainsnapshotxml2xmlout/disk_snapshot.xml
> +++ b/tests/domainsnapshotxml2xmlout/disk_snapshot.xml
> @@ -69,6 +69,7 @@
> <target dev='hdf' bus='ide'/>
> <address type='drive' controller='0' bus='5' unit='0'/>
> </disk>
> +<controller type='usb' index='0'/>
> <controller type='ide' index='0'/>
> <memballoon model='virtio'/>
> </devices>
> diff --git a/tests/domainsnapshotxml2xmlout/full_domain.xml b/tests/domainsnapshotxml2xmlout/full_domain.xml
> index 76f17e1..3063910 100644
> --- a/tests/domainsnapshotxml2xmlout/full_domain.xml
> +++ b/tests/domainsnapshotxml2xmlout/full_domain.xml
> @@ -27,6 +27,7 @@
> <target dev='hda' bus='ide'/>
> <address type='drive' controller='0' bus='0' unit='0'/>
> </disk>
> +<controller type='usb' index='0'/>
> <controller type='ide' index='0'/>
> <memballoon model='virtio'/>
> </devices>
> diff --git a/tests/domainsnapshotxml2xmlout/metadata.xml b/tests/domainsnapshotxml2xmlout/metadata.xml
> index f0ad70b..9553b17 100644
> --- a/tests/domainsnapshotxml2xmlout/metadata.xml
> +++ b/tests/domainsnapshotxml2xmlout/metadata.xml
> @@ -31,6 +31,7 @@
> <target dev='hda' bus='ide'/>
> <address type='drive' controller='0' bus='0' unit='0'/>
> </disk>
> +<controller type='usb' index='0'/>
> <controller type='ide' index='0'/>
> <memballoon model='virtio'/>
> </devices>
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-bios.xml b/tests/qemuxml2argvdata/qemuxml2argv-bios.xml
> index 5ce3e24..9b71164 100644
> --- a/tests/qemuxml2argvdata/qemuxml2argv-bios.xml
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-bios.xml
> @@ -21,6 +21,7 @@
> <target dev='hda' bus='ide'/>
> <address type='drive' controller='0' bus='0' unit='0'/>
> </disk>
> +<controller type='usb' index='0'/>
> <controller type='ide' index='0'/>
> <serial type='pty'>
> <target port='0'/>
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-blkdeviotune.xml b/tests/qemuxml2argvdata/qemuxml2argv-blkdeviotune.xml
> index 7b6ec8f..6b4da65 100644
> --- a/tests/qemuxml2argvdata/qemuxml2argv-blkdeviotune.xml
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-blkdeviotune.xml
> @@ -35,6 +35,7 @@
> </iotune>
> <address type='drive' controller='0' bus='0' unit='1'/>
> </disk>
> +<controller type='usb' index='0'/>
> <controller type='ide' index='0'/>
> <memballoon model='virtio'/>
> </devices>
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-blkiotune-device.xml b/tests/qemuxml2argvdata/qemuxml2argv-blkiotune-device.xml
> index 3412753..6c2d282 100644
> --- a/tests/qemuxml2argvdata/qemuxml2argv-blkiotune-device.xml
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-blkiotune-device.xml
> @@ -30,6 +30,7 @@
> <target dev='hda' bus='ide'/>
> <address type='drive' controller='0' bus='0' unit='0'/>
> </disk>
> +<controller type='usb' index='0'/>
> <controller type='ide' index='0'/>
> <memballoon model='virtio'/>
> </devices>
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-blkiotune.xml b/tests/qemuxml2argvdata/qemuxml2argv-blkiotune.xml
> index 4fa03ef..ae7133f 100644
> --- a/tests/qemuxml2argvdata/qemuxml2argv-blkiotune.xml
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-blkiotune.xml
> @@ -22,6 +22,7 @@
> <target dev='hda' bus='ide'/>
> <address type='drive' controller='0' bus='0' unit='0'/>
> </disk>
> +<controller type='usb' index='0'/>
> <controller type='ide' index='0'/>
> <memballoon model='virtio'/>
> </devices>
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-boot-cdrom.xml b/tests/qemuxml2argvdata/qemuxml2argv-boot-cdrom.xml
> index 14ccd23..183894b 100644
> --- a/tests/qemuxml2argvdata/qemuxml2argv-boot-cdrom.xml
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-boot-cdrom.xml
> @@ -20,6 +20,7 @@
> <readonly/>
> <address type='drive' controller='0' bus='1' unit='0'/>
> </disk>
> +<controller type='usb' index='0'/>
> <controller type='ide' index='0'/>
> <memballoon model='virtio'/>
> </devices>
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-boot-complex-bootindex.xml b/tests/qemuxml2argvdata/qemuxml2argv-boot-complex-bootindex.xml
> index b4d6f4f..860f52e 100644
> --- a/tests/qemuxml2argvdata/qemuxml2argv-boot-complex-bootindex.xml
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-boot-complex-bootindex.xml
> @@ -50,6 +50,7 @@
> <target dev='fda' bus='fdc'/>
> <address type='drive' controller='0' bus='0' unit='0'/>
> </disk>
> +<controller type='usb' index='0'/>
> <controller type='fdc' index='0'/>
> <controller type='ide' index='0'/>
> <interface type='user'>
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-boot-complex.xml b/tests/qemuxml2argvdata/qemuxml2argv-boot-complex.xml
> index b4d6f4f..860f52e 100644
> --- a/tests/qemuxml2argvdata/qemuxml2argv-boot-complex.xml
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-boot-complex.xml
> @@ -50,6 +50,7 @@
> <target dev='fda' bus='fdc'/>
> <address type='drive' controller='0' bus='0' unit='0'/>
> </disk>
> +<controller type='usb' index='0'/>
> <controller type='fdc' index='0'/>
> <controller type='ide' index='0'/>
> <interface type='user'>
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-boot-floppy.xml b/tests/qemuxml2argvdata/qemuxml2argv-boot-floppy.xml
> index db3a94f..ff20736 100644
> --- a/tests/qemuxml2argvdata/qemuxml2argv-boot-floppy.xml
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-boot-floppy.xml
> @@ -24,6 +24,7 @@
> <target dev='fda' bus='fdc'/>
> <address type='drive' controller='0' bus='0' unit='0'/>
> </disk>
> +<controller type='usb' index='0'/>
> <controller type='fdc' index='0'/>
> <controller type='ide' index='0'/>
> <memballoon model='virtio'/>
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-boot-menu-disable-drive-bootindex.xml b/tests/qemuxml2argvdata/qemuxml2argv-boot-menu-disable-drive-bootindex.xml
> index bc1da8a..66a64df 100644
> --- a/tests/qemuxml2argvdata/qemuxml2argv-boot-menu-disable-drive-bootindex.xml
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-boot-menu-disable-drive-bootindex.xml
> @@ -21,6 +21,7 @@
> <readonly/>
> <address type='drive' controller='0' bus='1' unit='0'/>
> </disk>
> +<controller type='usb' index='0'/>
> <controller type='ide' index='0'/>
> <memballoon model='virtio'/>
> </devices>
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-boot-menu-disable-drive.xml b/tests/qemuxml2argvdata/qemuxml2argv-boot-menu-disable-drive.xml
> index bc1da8a..66a64df 100644
> --- a/tests/qemuxml2argvdata/qemuxml2argv-boot-menu-disable-drive.xml
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-boot-menu-disable-drive.xml
> @@ -21,6 +21,7 @@
> <readonly/>
> <address type='drive' controller='0' bus='1' unit='0'/>
> </disk>
> +<controller type='usb' index='0'/>
> <controller type='ide' index='0'/>
> <memballoon model='virtio'/>
> </devices>
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-boot-menu-disable.xml b/tests/qemuxml2argvdata/qemuxml2argv-boot-menu-disable.xml
> index bc1da8a..66a64df 100644
> --- a/tests/qemuxml2argvdata/qemuxml2argv-boot-menu-disable.xml
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-boot-menu-disable.xml
> @@ -21,6 +21,7 @@
> <readonly/>
> <address type='drive' controller='0' bus='1' unit='0'/>
> </disk>
> +<controller type='usb' index='0'/>
> <controller type='ide' index='0'/>
> <memballoon model='virtio'/>
> </devices>
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-boot-menu-enable.xml b/tests/qemuxml2argvdata/qemuxml2argv-boot-menu-enable.xml
> index c35b2bd..d92f681 100644
> --- a/tests/qemuxml2argvdata/qemuxml2argv-boot-menu-enable.xml
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-boot-menu-enable.xml
> @@ -21,6 +21,7 @@
> <readonly/>
> <address type='drive' controller='0' bus='1' unit='0'/>
> </disk>
> +<controller type='usb' index='0'/>
> <controller type='ide' index='0'/>
> <memballoon model='virtio'/>
> </devices>
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-boot-multi.xml b/tests/qemuxml2argvdata/qemuxml2argv-boot-multi.xml
> index 44ca0fa..09556da 100644
> --- a/tests/qemuxml2argvdata/qemuxml2argv-boot-multi.xml
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-boot-multi.xml
> @@ -24,6 +24,7 @@
> <readonly/>
> <address type='drive' controller='0' bus='1' unit='0'/>
> </disk>
> +<controller type='usb' index='0'/>
> <controller type='ide' index='0'/>
> <memballoon model='virtio'/>
> </devices>
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-boot-network.xml b/tests/qemuxml2argvdata/qemuxml2argv-boot-network.xml
> index d3f3369..aec0796 100644
> --- a/tests/qemuxml2argvdata/qemuxml2argv-boot-network.xml
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-boot-network.xml
> @@ -19,6 +19,7 @@
> <target dev='hda' bus='ide'/>
> <address type='drive' controller='0' bus='0' unit='0'/>
> </disk>
> +<controller type='usb' index='0'/>
> <controller type='ide' index='0'/>
> <memballoon model='virtio'/>
> </devices>
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-boot-order.xml b/tests/qemuxml2argvdata/qemuxml2argv-boot-order.xml
> index 68741fe..f46ef5c 100644
> --- a/tests/qemuxml2argvdata/qemuxml2argv-boot-order.xml
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-boot-order.xml
> @@ -40,6 +40,7 @@
> <boot order='4'/>
> <address type='drive' controller='0' bus='0' unit='1'/>
> </disk>
> +<controller type='usb' index='0'/>
> <controller type='ide' index='0'/>
> <controller type='fdc' index='0'/>
> <interface type='user'>
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-bootloader.xml b/tests/qemuxml2argvdata/qemuxml2argv-bootloader.xml
> index 6ce846d..332e6b6 100644
> --- a/tests/qemuxml2argvdata/qemuxml2argv-bootloader.xml
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-bootloader.xml
> @@ -20,6 +20,7 @@
> <readonly/>
> <address type='drive' controller='0' bus='1' unit='0'/>
> </disk>
> +<controller type='usb' index='0'/>
> <controller type='ide' index='0'/>
> <memballoon model='virtio'/>
> </devices>
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-channel-guestfwd.xml b/tests/qemuxml2argvdata/qemuxml2argv-channel-guestfwd.xml
> index b1d5281..1016ead 100644
> --- a/tests/qemuxml2argvdata/qemuxml2argv-channel-guestfwd.xml
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-channel-guestfwd.xml
> @@ -19,6 +19,7 @@
> <target dev='hda' bus='ide'/>
> <address type='drive' controller='0' bus='0' unit='0'/>
> </disk>
> +<controller type='usb' index='0'/>
> <controller type='ide' index='0'/>
> <channel type='pipe'>
> <source path='/tmp/guestfwd'/>
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-channel-spicevmc-old.xml b/tests/qemuxml2argvdata/qemuxml2argv-channel-spicevmc-old.xml
> index 0e82394..9b53469 100644
> --- a/tests/qemuxml2argvdata/qemuxml2argv-channel-spicevmc-old.xml
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-channel-spicevmc-old.xml
> @@ -18,6 +18,7 @@
> <target dev='hda' bus='ide'/>
> <address type='drive' controller='0' bus='0' unit='0'/>
> </disk>
> +<controller type='usb' index='0'/>
> <controller type='ide' index='0'/>
> <controller type='virtio-serial' index='1'>
> <address type='pci' domain='0x0000' bus='0x00' slot='0x0a' function='0x0'/>
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-channel-spicevmc.xml b/tests/qemuxml2argvdata/qemuxml2argv-channel-spicevmc.xml
> index 0e82394..9b53469 100644
> --- a/tests/qemuxml2argvdata/qemuxml2argv-channel-spicevmc.xml
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-channel-spicevmc.xml
> @@ -18,6 +18,7 @@
> <target dev='hda' bus='ide'/>
> <address type='drive' controller='0' bus='0' unit='0'/>
> </disk>
> +<controller type='usb' index='0'/>
> <controller type='ide' index='0'/>
> <controller type='virtio-serial' index='1'>
> <address type='pci' domain='0x0000' bus='0x00' slot='0x0a' function='0x0'/>
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-channel-virtio-auto.xml b/tests/qemuxml2argvdata/qemuxml2argv-channel-virtio-auto.xml
> index c127d84..dd3bd9d 100644
> --- a/tests/qemuxml2argvdata/qemuxml2argv-channel-virtio-auto.xml
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-channel-virtio-auto.xml
> @@ -19,6 +19,7 @@
> <target dev='hda' bus='ide'/>
> <address type='drive' controller='0' bus='0' unit='0'/>
> </disk>
> +<controller type='usb' index='0'/>
> <controller type='ide' index='0'/>
> <controller type='virtio-serial' index='0' ports='16' vectors='4'/>
> <controller type='virtio-serial' index='1'>
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-channel-virtio.xml b/tests/qemuxml2argvdata/qemuxml2argv-channel-virtio.xml
> index f612c02..e13f8b9 100644
> --- a/tests/qemuxml2argvdata/qemuxml2argv-channel-virtio.xml
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-channel-virtio.xml
> @@ -19,6 +19,7 @@
> <target dev='hda' bus='ide'/>
> <address type='drive' controller='0' bus='0' unit='0'/>
> </disk>
> +<controller type='usb' index='0'/>
> <controller type='ide' index='0'/>
> <controller type='virtio-serial' index='1'>
> <address type='pci' domain='0x0000' bus='0x00' slot='0x0a' function='0x0'/>
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-clock-france.xml b/tests/qemuxml2argvdata/qemuxml2argv-clock-france.xml
> index 017ef39..60560ee 100644
> --- a/tests/qemuxml2argvdata/qemuxml2argv-clock-france.xml
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-clock-france.xml
> @@ -19,6 +19,7 @@
> <target dev='hda' bus='ide'/>
> <address type='drive' controller='0' bus='0' unit='0'/>
> </disk>
> +<controller type='usb' index='0'/>
> <controller type='ide' index='0'/>
> <memballoon model='virtio'/>
> </devices>
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-clock-localtime.xml b/tests/qemuxml2argvdata/qemuxml2argv-clock-localtime.xml
> index ed746c1..958b3d2 100644
> --- a/tests/qemuxml2argvdata/qemuxml2argv-clock-localtime.xml
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-clock-localtime.xml
> @@ -19,6 +19,7 @@
> <target dev='hda' bus='ide'/>
> <address type='drive' controller='0' bus='0' unit='0'/>
> </disk>
> +<controller type='usb' index='0'/>
> <controller type='ide' index='0'/>
> <memballoon model='virtio'/>
> </devices>
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-clock-utc.xml b/tests/qemuxml2argvdata/qemuxml2argv-clock-utc.xml
> index 479a1d9..317f793 100644
> --- a/tests/qemuxml2argvdata/qemuxml2argv-clock-utc.xml
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-clock-utc.xml
> @@ -19,6 +19,7 @@
> <target dev='hda' bus='ide'/>
> <address type='drive' controller='0' bus='0' unit='0'/>
> </disk>
> +<controller type='usb' index='0'/>
> <controller type='ide' index='0'/>
> <memballoon model='virtio'/>
> </devices>
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-clock-variable.xml b/tests/qemuxml2argvdata/qemuxml2argv-clock-variable.xml
> index 9f52cca..eea6ce4 100644
> --- a/tests/qemuxml2argvdata/qemuxml2argv-clock-variable.xml
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-clock-variable.xml
> @@ -19,6 +19,7 @@
> <target dev='hda' bus='ide'/>
> <address type='drive' controller='0' bus='0' unit='0'/>
> </disk>
> +<controller type='usb' index='0'/>
> <controller type='ide' index='0'/>
> <memballoon model='virtio'/>
> </devices>
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-console-compat-auto.xml b/tests/qemuxml2argvdata/qemuxml2argv-console-compat-auto.xml
> index bd19988..7fb2ff9 100644
> --- a/tests/qemuxml2argvdata/qemuxml2argv-console-compat-auto.xml
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-console-compat-auto.xml
> @@ -19,6 +19,7 @@
> <target dev='hda' bus='ide'/>
> <address type='drive' controller='0' bus='0' unit='0'/>
> </disk>
> +<controller type='usb' index='0'/>
> <controller type='ide' index='0'/>
> <console type='pty'>
> <target port='0'/>
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-console-compat-chardev.xml b/tests/qemuxml2argvdata/qemuxml2argv-console-compat-chardev.xml
> index 0bf52f4..1a7899a 100644
> --- a/tests/qemuxml2argvdata/qemuxml2argv-console-compat-chardev.xml
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-console-compat-chardev.xml
> @@ -19,6 +19,7 @@
> <target dev='hda' bus='ide'/>
> <address type='drive' controller='0' bus='0' unit='0'/>
> </disk>
> +<controller type='usb' index='0'/>
> <controller type='ide' index='0'/>
> <serial type='pty'>
> <target port='0'/>
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-console-compat.xml b/tests/qemuxml2argvdata/qemuxml2argv-console-compat.xml
> index 9011522..f579b11 100644
> --- a/tests/qemuxml2argvdata/qemuxml2argv-console-compat.xml
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-console-compat.xml
> @@ -19,6 +19,7 @@
> <target dev='hda' bus='ide'/>
> <address type='drive' controller='0' bus='0' unit='0'/>
> </disk>
> +<controller type='usb' index='0'/>
> <controller type='ide' index='0'/>
> <serial type='pty'>
> <target port='0'/>
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-console-virtio-many.xml b/tests/qemuxml2argvdata/qemuxml2argv-console-virtio-many.xml
> index e65fb74..71b7fbe 100644
> --- a/tests/qemuxml2argvdata/qemuxml2argv-console-virtio-many.xml
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-console-virtio-many.xml
> @@ -19,6 +19,7 @@
> <target dev='hda' bus='ide'/>
> <address type='drive' controller='0' bus='0' unit='0'/>
> </disk>
> +<controller type='usb' index='0'/>
> <controller type='ide' index='0'/>
> <controller type='virtio-serial' index='0'/>
> <serial type='pty'>
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-console-virtio.xml b/tests/qemuxml2argvdata/qemuxml2argv-console-virtio.xml
> index 259af4a..8311e59 100644
> --- a/tests/qemuxml2argvdata/qemuxml2argv-console-virtio.xml
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-console-virtio.xml
> @@ -19,6 +19,7 @@
> <target dev='hda' bus='ide'/>
> <address type='drive' controller='0' bus='0' unit='0'/>
> </disk>
> +<controller type='usb' index='0'/>
> <controller type='ide' index='0'/>
> <console type='pty'>
> <target type='virtio'/>
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-cpu-host-kvmclock.xml b/tests/qemuxml2argvdata/qemuxml2argv-cpu-host-kvmclock.xml
> index 15a9e44..50f582b 100644
> --- a/tests/qemuxml2argvdata/qemuxml2argv-cpu-host-kvmclock.xml
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-cpu-host-kvmclock.xml
> @@ -18,6 +18,7 @@
> <on_crash>destroy</on_crash>
> <devices>
> <emulator>/./qemu.sh</emulator>
> +<controller type='usb' index='0'/>
> <memballoon model='virtio'/>
> </devices>
> </domain>
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-cpu-kvmclock.xml b/tests/qemuxml2argvdata/qemuxml2argv-cpu-kvmclock.xml
> index 2b51b0e..63a6163 100644
> --- a/tests/qemuxml2argvdata/qemuxml2argv-cpu-kvmclock.xml
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-cpu-kvmclock.xml
> @@ -19,6 +19,7 @@
> <on_crash>destroy</on_crash>
> <devices>
> <emulator>/./qemu.sh</emulator>
> +<controller type='usb' index='0'/>
> <memballoon model='virtio'/>
> </devices>
> </domain>
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-cputune.xml b/tests/qemuxml2argvdata/qemuxml2argv-cputune.xml
> index 091865a..b892320 100644
> --- a/tests/qemuxml2argvdata/qemuxml2argv-cputune.xml
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-cputune.xml
> @@ -26,6 +26,7 @@
> <target dev='hda' bus='ide'/>
> <address type='drive' controller='0' bus='0' unit='0'/>
> </disk>
> +<controller type='usb' index='0'/>
> <controller type='ide' index='0'/>
> <memballoon model='virtio'/>
> </devices>
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-disk-aio.xml b/tests/qemuxml2argvdata/qemuxml2argv-disk-aio.xml
> index f6d7633..12b114f 100644
> --- a/tests/qemuxml2argvdata/qemuxml2argv-disk-aio.xml
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-disk-aio.xml
> @@ -27,6 +27,7 @@
> <readonly/>
> <address type='drive' controller='0' bus='1' unit='0'/>
> </disk>
> +<controller type='usb' index='0'/>
> <controller type='ide' index='0'/>
> <memballoon model='virtio'/>
> </devices>
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-disk-cdrom-empty.xml b/tests/qemuxml2argvdata/qemuxml2argv-disk-cdrom-empty.xml
> index bc40d16..565b8e2 100644
> --- a/tests/qemuxml2argvdata/qemuxml2argv-disk-cdrom-empty.xml
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-disk-cdrom-empty.xml
> @@ -24,6 +24,7 @@
> <readonly/>
> <address type='drive' controller='0' bus='1' unit='0'/>
> </disk>
> +<controller type='usb' index='0'/>
> <controller type='ide' index='0'/>
> <memballoon model='virtio'/>
> </devices>
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-disk-cdrom.xml b/tests/qemuxml2argvdata/qemuxml2argv-disk-cdrom.xml
> index 2fd2e6a..cea3f4a 100644
> --- a/tests/qemuxml2argvdata/qemuxml2argv-disk-cdrom.xml
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-disk-cdrom.xml
> @@ -25,6 +25,7 @@
> <readonly/>
> <address type='drive' controller='0' bus='1' unit='0'/>
> </disk>
> +<controller type='usb' index='0'/>
> <controller type='ide' index='0'/>
> <memballoon model='virtio'/>
> </devices>
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-disk-copy_on_read.xml b/tests/qemuxml2argvdata/qemuxml2argv-disk-copy_on_read.xml
> index 433c641..a94623a 100644
> --- a/tests/qemuxml2argvdata/qemuxml2argv-disk-copy_on_read.xml
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-disk-copy_on_read.xml
> @@ -32,6 +32,7 @@
> <model type='virtio'/>
> <driver name='vhost' txmode='iothread'/>
> </interface>
> +<controller type='usb' index='0'/>
> <controller type='virtio-serial' index='0'>
> <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/>
> </controller>
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-boot-cdrom.xml b/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-boot-cdrom.xml
> index 434cd7e..a018655 100644
> --- a/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-boot-cdrom.xml
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-boot-cdrom.xml
> @@ -24,6 +24,7 @@
> <target dev='hdc' bus='ide'/>
> <address type='drive' controller='0' bus='1' unit='0'/>
> </disk>
> +<controller type='usb' index='0'/>
> <controller type='ide' index='0'/>
> <memballoon model='virtio'/>
> </devices>
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-boot-disk.xml b/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-boot-disk.xml
> index 452cb82..ba27ec6 100644
> --- a/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-boot-disk.xml
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-boot-disk.xml
> @@ -24,6 +24,7 @@
> <target dev='hdc' bus='ide'/>
> <address type='drive' controller='0' bus='1' unit='0'/>
> </disk>
> +<controller type='usb' index='0'/>
> <controller type='ide' index='0'/>
> <memballoon model='virtio'/>
> </devices>
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-cache-directsync.xml b/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-cache-directsync.xml
> index 17d7c1c..1996223 100644
> --- a/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-cache-directsync.xml
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-cache-directsync.xml
> @@ -27,6 +27,7 @@
> <readonly/>
> <address type='drive' controller='0' bus='1' unit='0'/>
> </disk>
> +<controller type='usb' index='0'/>
> <controller type='ide' index='0'/>
> <memballoon model='virtio'/>
> </devices>
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-cache-unsafe.xml b/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-cache-unsafe.xml
> index 37185f6..562ff0a 100644
> --- a/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-cache-unsafe.xml
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-cache-unsafe.xml
> @@ -27,6 +27,7 @@
> <readonly/>
> <address type='drive' controller='0' bus='1' unit='0'/>
> </disk>
> +<controller type='usb' index='0'/>
> <controller type='ide' index='0'/>
> <memballoon model='virtio'/>
> </devices>
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-cache-v1-none.xml b/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-cache-v1-none.xml
> index 3f60871..2d954de 100644
> --- a/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-cache-v1-none.xml
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-cache-v1-none.xml
> @@ -27,6 +27,7 @@
> <readonly/>
> <address type='drive' controller='0' bus='1' unit='0'/>
> </disk>
> +<controller type='usb' index='0'/>
> <controller type='ide' index='0'/>
> <memballoon model='virtio'/>
> </devices>
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-cache-v1-wb.xml b/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-cache-v1-wb.xml
> index 6a4e8e3..adb243d 100644
> --- a/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-cache-v1-wb.xml
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-cache-v1-wb.xml
> @@ -27,6 +27,7 @@
> <readonly/>
> <address type='drive' controller='0' bus='1' unit='0'/>
> </disk>
> +<controller type='usb' index='0'/>
> <controller type='ide' index='0'/>
> <memballoon model='virtio'/>
> </devices>
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-cache-v1-wt.xml b/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-cache-v1-wt.xml
> index 5f351f5..0c50f48 100644
> --- a/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-cache-v1-wt.xml
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-cache-v1-wt.xml
> @@ -27,6 +27,7 @@
> <readonly/>
> <address type='drive' controller='0' bus='1' unit='0'/>
> </disk>
> +<controller type='usb' index='0'/>
> <controller type='ide' index='0'/>
> <memballoon model='virtio'/>
> </devices>
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-cache-v2-none.xml b/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-cache-v2-none.xml
> index da07d5e..fcf52a4 100644
> --- a/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-cache-v2-none.xml
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-cache-v2-none.xml
> @@ -27,6 +27,7 @@
> <readonly/>
> <address type='drive' controller='0' bus='1' unit='0'/>
> </disk>
> +<controller type='usb' index='0'/>
> <controller type='ide' index='0'/>
> <memballoon model='virtio'/>
> </devices>
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-cache-v2-wb.xml b/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-cache-v2-wb.xml
> index 8c30aec..5445be6 100644
> --- a/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-cache-v2-wb.xml
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-cache-v2-wb.xml
> @@ -27,6 +27,7 @@
> <readonly/>
> <address type='drive' controller='0' bus='1' unit='0'/>
> </disk>
> +<controller type='usb' index='0'/>
> <controller type='ide' index='0'/>
> <memballoon model='virtio'/>
> </devices>
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-cache-v2-wt.xml b/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-cache-v2-wt.xml
> index a9e0c33..de543a9 100644
> --- a/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-cache-v2-wt.xml
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-cache-v2-wt.xml
> @@ -27,6 +27,7 @@
> <readonly/>
> <address type='drive' controller='0' bus='1' unit='0'/>
> </disk>
> +<controller type='usb' index='0'/>
> <controller type='ide' index='0'/>
> <memballoon model='virtio'/>
> </devices>
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-error-policy-enospace.xml b/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-error-policy-enospace.xml
> index f9a56ab..694c59b 100644
> --- a/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-error-policy-enospace.xml
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-error-policy-enospace.xml
> @@ -27,6 +27,7 @@
> <readonly/>
> <address type='drive' controller='0' bus='1' unit='0'/>
> </disk>
> +<controller type='usb' index='0'/>
> <controller type='ide' index='0'/>
> <memballoon model='virtio'/>
> </devices>
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-error-policy-stop.xml b/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-error-policy-stop.xml
> index 6d99607..34fe20f 100644
> --- a/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-error-policy-stop.xml
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-error-policy-stop.xml
> @@ -27,6 +27,7 @@
> <readonly/>
> <address type='drive' controller='0' bus='1' unit='0'/>
> </disk>
> +<controller type='usb' index='0'/>
> <controller type='ide' index='0'/>
> <memballoon model='virtio'/>
> </devices>
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-error-policy-wreport-rignore.xml b/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-error-policy-wreport-rignore.xml
> index 70068aa..80cf5fe 100644
> --- a/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-error-policy-wreport-rignore.xml
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-error-policy-wreport-rignore.xml
> @@ -27,6 +27,7 @@
> <readonly/>
> <address type='drive' controller='0' bus='1' unit='0'/>
> </disk>
> +<controller type='usb' index='0'/>
> <controller type='ide' index='0'/>
> <memballoon model='virtio'/>
> </devices>
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-fat.xml b/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-fat.xml
> index d473711..fdf2030 100644
> --- a/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-fat.xml
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-fat.xml
> @@ -21,6 +21,7 @@
> <readonly/>
> <address type='drive' controller='0' bus='0' unit='0'/>
> </disk>
> +<controller type='usb' index='0'/>
> <controller type='ide' index='0'/>
> <memballoon model='virtio'/>
> </devices>
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-fmt-qcow.xml b/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-fmt-qcow.xml
> index cc88ef5..dbece24 100644
> --- a/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-fmt-qcow.xml
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-fmt-qcow.xml
> @@ -27,6 +27,7 @@
> <readonly/>
> <address type='drive' controller='0' bus='1' unit='0'/>
> </disk>
> +<controller type='usb' index='0'/>
> <controller type='ide' index='0'/>
> <memballoon model='virtio'/>
> </devices>
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-network-nbd.xml b/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-network-nbd.xml
> index c0255a8..7ba0ab0 100644
> --- a/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-network-nbd.xml
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-network-nbd.xml
> @@ -26,6 +26,7 @@
> </source>
> <target dev='vda' bus='virtio'/>
> </disk>
> +<controller type='usb' index='0'/>
> <controller type='ide' index='0'/>
> <memballoon model='virtio'/>
> </devices>
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-network-rbd-auth.xml b/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-network-rbd-auth.xml
> index 88f7f7a..a81bf1a 100644
> --- a/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-network-rbd-auth.xml
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-network-rbd-auth.xml
> @@ -31,6 +31,7 @@
> </source>
> <target dev='vda' bus='virtio'/>
> </disk>
> +<controller type='usb' index='0'/>
> <controller type='ide' index='0'/>
> <memballoon model='virtio'/>
> </devices>
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-network-rbd-ceph-env.xml b/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-network-rbd-ceph-env.xml
> index e920db1..f0bcfd5 100644
> --- a/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-network-rbd-ceph-env.xml
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-network-rbd-ceph-env.xml
> @@ -28,6 +28,7 @@
> </source>
> <target dev='vda' bus='virtio'/>
> </disk>
> +<controller type='usb' index='0'/>
> <controller type='ide' index='0'/>
> <memballoon model='virtio'/>
> </devices>
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-network-rbd.xml b/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-network-rbd.xml
> index e920db1..f0bcfd5 100644
> --- a/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-network-rbd.xml
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-network-rbd.xml
> @@ -28,6 +28,7 @@
> </source>
> <target dev='vda' bus='virtio'/>
> </disk>
> +<controller type='usb' index='0'/>
> <controller type='ide' index='0'/>
> <memballoon model='virtio'/>
> </devices>
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-network-sheepdog.xml b/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-network-sheepdog.xml
> index 83d6c4e..cd0eef4 100644
> --- a/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-network-sheepdog.xml
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-network-sheepdog.xml
> @@ -26,6 +26,7 @@
> </source>
> <target dev='vda' bus='virtio'/>
> </disk>
> +<controller type='usb' index='0'/>
> <controller type='ide' index='0'/>
> <memballoon model='virtio'/>
> </devices>
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-no-boot.xml b/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-no-boot.xml
> index a7e08fd..88ce751 100644
> --- a/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-no-boot.xml
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-no-boot.xml
> @@ -31,6 +31,7 @@
> <target dev='fda' bus='fdc'/>
> <address type='drive' controller='0' bus='0' unit='0'/>
> </disk>
> +<controller type='usb' index='0'/>
> <controller type='fdc' index='0'/>
> <controller type='ide' index='0'/>
> <memballoon model='none'/>
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-readonly-disk.xml b/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-readonly-disk.xml
> index c0cf6a4..380f850 100644
> --- a/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-readonly-disk.xml
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-readonly-disk.xml
> @@ -25,6 +25,7 @@
> <readonly/>
> <address type='drive' controller='0' bus='1' unit='0'/>
> </disk>
> +<controller type='usb' index='0'/>
> <controller type='ide' index='0'/>
> <memballoon model='virtio'/>
> </devices>
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-readonly-no-device.xml b/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-readonly-no-device.xml
> index c0cf6a4..380f850 100644
> --- a/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-readonly-no-device.xml
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-readonly-no-device.xml
> @@ -25,6 +25,7 @@
> <readonly/>
> <address type='drive' controller='0' bus='1' unit='0'/>
> </disk>
> +<controller type='usb' index='0'/>
> <controller type='ide' index='0'/>
> <memballoon model='virtio'/>
> </devices>
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-shared.xml b/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-shared.xml
> index 8dcf4b7..c155040 100644
> --- a/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-shared.xml
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-shared.xml
> @@ -29,6 +29,7 @@
> <readonly/>
> <address type='drive' controller='0' bus='1' unit='0'/>
> </disk>
> +<controller type='usb' index='0'/>
> <controller type='ide' index='0'/>
> <memballoon model='virtio'/>
> </devices>
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-disk-floppy.xml b/tests/qemuxml2argvdata/qemuxml2argv-disk-floppy.xml
> index 6c2a18d..99adcd4 100644
> --- a/tests/qemuxml2argvdata/qemuxml2argv-disk-floppy.xml
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-disk-floppy.xml
> @@ -29,6 +29,7 @@
> <target dev='fdb' bus='fdc'/>
> <address type='drive' controller='0' bus='0' unit='1'/>
> </disk>
> +<controller type='usb' index='0'/>
> <controller type='fdc' index='0'/>
> <controller type='ide' index='0'/>
> <memballoon model='virtio'/>
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-disk-ioeventfd.xml b/tests/qemuxml2argvdata/qemuxml2argv-disk-ioeventfd.xml
> index c565c9f..3bc82cb 100644
> --- a/tests/qemuxml2argvdata/qemuxml2argv-disk-ioeventfd.xml
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-disk-ioeventfd.xml
> @@ -32,6 +32,7 @@
> <model type='virtio'/>
> <driver name='vhost' txmode='iothread' ioeventfd='off'/>
> </interface>
> +<controller type='usb' index='0'/>
> <controller type='virtio-serial' index='0'>
> <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/>
> </controller>
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-disk-many.xml b/tests/qemuxml2argvdata/qemuxml2argv-disk-many.xml
> index 3b28a34..c04d6e2 100644
> --- a/tests/qemuxml2argvdata/qemuxml2argv-disk-many.xml
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-disk-many.xml
> @@ -34,6 +34,7 @@
> <target dev='hdd' bus='ide'/>
> <address type='drive' controller='0' bus='1' unit='1'/>
> </disk>
> +<controller type='usb' index='0'/>
> <controller type='ide' index='0'/>
> <memballoon model='virtio'/>
> </devices>
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-disk-order.xml b/tests/qemuxml2argvdata/qemuxml2argv-disk-order.xml
> index b07bbed..d89e57b 100644
> --- a/tests/qemuxml2argvdata/qemuxml2argv-disk-order.xml
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-disk-order.xml
> @@ -31,6 +31,7 @@
> <source file='/tmp/data.img'/>
> <target dev='vda' bus='virtio'/>
> </disk>
> +<controller type='usb' index='0'/>
> <controller type='ide' index='0'/>
> <memballoon model='virtio'/>
> </devices>
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-disk-sata-device.xml b/tests/qemuxml2argvdata/qemuxml2argv-disk-sata-device.xml
> index 68a14f2..81f30e5 100644
> --- a/tests/qemuxml2argvdata/qemuxml2argv-disk-sata-device.xml
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-disk-sata-device.xml
> @@ -19,6 +19,7 @@
> <target dev='sda' bus='sata'/>
> <address type='drive' controller='0' bus='0' unit='0'/>
> </disk>
> +<controller type='usb' index='0'/>
> <controller type='sata' index='0'/>
> <memballoon model='virtio'/>
> </devices>
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-disk-scsi-device-auto.xml b/tests/qemuxml2argvdata/qemuxml2argv-disk-scsi-device-auto.xml
> index a7e55b0..fbbf6ed 100644
> --- a/tests/qemuxml2argvdata/qemuxml2argv-disk-scsi-device-auto.xml
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-disk-scsi-device-auto.xml
> @@ -18,6 +18,7 @@
> <source dev='/dev/HostVG/QEMUGuest1'/>
> <target dev='hda' bus='ide'/>
> </disk>
> +<controller type='usb' index='0'/>
> <controller type='ide' index='0'/>
> <disk type='file' device='disk'>
> <source file='/tmp/scsidisk.img'/>
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-disk-scsi-device.xml b/tests/qemuxml2argvdata/qemuxml2argv-disk-scsi-device.xml
> index 530c0a6..17b59d8 100644
> --- a/tests/qemuxml2argvdata/qemuxml2argv-disk-scsi-device.xml
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-disk-scsi-device.xml
> @@ -24,6 +24,7 @@
> <target dev='sda' bus='scsi'/>
> <address type='drive' controller='0' bus='0' unit='0'/>
> </disk>
> +<controller type='usb' index='0'/>
> <controller type='ide' index='0'/>
> <controller type='scsi' index='0'/>
> <memballoon model='virtio'/>
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-disk-scsi-virtio-scsi.xml b/tests/qemuxml2argvdata/qemuxml2argv-disk-scsi-virtio-scsi.xml
> index 452ade8..3c61e1f 100644
> --- a/tests/qemuxml2argvdata/qemuxml2argv-disk-scsi-virtio-scsi.xml
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-disk-scsi-virtio-scsi.xml
> @@ -24,6 +24,7 @@
> <target dev='sda' bus='scsi'/>
> <address type='drive' controller='0' bus='0' unit='0'/>
> </disk>
> +<controller type='usb' index='0'/>
> <controller type='ide' index='0'/>
> <controller type='scsi' index='0' model='virtio-scsi'/>
> <memballoon model='virtio'/>
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-disk-scsi-vscsi.xml b/tests/qemuxml2argvdata/qemuxml2argv-disk-scsi-vscsi.xml
> index 7cf5798..12f928a 100644
> --- a/tests/qemuxml2argvdata/qemuxml2argv-disk-scsi-vscsi.xml
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-disk-scsi-vscsi.xml
> @@ -24,6 +24,7 @@
> <target dev='sda' bus='scsi'/>
> <address type='drive' controller='0' bus='0' unit='0'/>
> </disk>
> +<controller type='usb' index='0'/>
> <controller type='ide' index='0'/>
> <controller type='scsi' index='0' model='ibmvscsi'/>
> <memballoon model='virtio'/>
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-disk-snapshot.xml b/tests/qemuxml2argvdata/qemuxml2argv-disk-snapshot.xml
> index aeb2315..2501ac8 100644
> --- a/tests/qemuxml2argvdata/qemuxml2argv-disk-snapshot.xml
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-disk-snapshot.xml
> @@ -33,6 +33,7 @@
> <target dev='hdb' bus='ide'/>
> <address type='drive' controller='0' bus='2' unit='0'/>
> </disk>
> +<controller type='usb' index='0'/>
> <controller type='ide' index='0'/>
> <memballoon model='virtio'/>
> </devices>
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-disk-transient.xml b/tests/qemuxml2argvdata/qemuxml2argv-disk-transient.xml
> index df49c48..e5aef0a 100644
> --- a/tests/qemuxml2argvdata/qemuxml2argv-disk-transient.xml
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-disk-transient.xml
> @@ -21,6 +21,7 @@
> <transient/>
> <address type='drive' controller='0' bus='0' unit='0'/>
> </disk>
> +<controller type='usb' index='0'/>
> <controller type='ide' index='0'/>
> <memballoon model='virtio'/>
> </devices>
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-disk-usb.xml b/tests/qemuxml2argvdata/qemuxml2argv-disk-usb.xml
> index 0a9adef..a8a505d 100644
> --- a/tests/qemuxml2argvdata/qemuxml2argv-disk-usb.xml
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-disk-usb.xml
> @@ -23,6 +23,7 @@
> <source file='/tmp/usbdisk.img'/>
> <target dev='sda' bus='usb'/>
> </disk>
> +<controller type='usb' index='0'/>
> <controller type='ide' index='0'/>
> <memballoon model='virtio'/>
> </devices>
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-disk-virtio.xml b/tests/qemuxml2argvdata/qemuxml2argv-disk-virtio.xml
> index eef9a1b..9a9e966 100644
> --- a/tests/qemuxml2argvdata/qemuxml2argv-disk-virtio.xml
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-disk-virtio.xml
> @@ -33,6 +33,7 @@
> <source file='/tmp/logs.img'/>
> <target dev='vdb' bus='virtio'/>
> </disk>
> +<controller type='usb' index='0'/>
> <controller type='ide' index='0'/>
> <memballoon model='virtio'/>
> </devices>
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-disk-xenvbd.xml b/tests/qemuxml2argvdata/qemuxml2argv-disk-xenvbd.xml
> index c940847..4497a04 100644
> --- a/tests/qemuxml2argvdata/qemuxml2argv-disk-xenvbd.xml
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-disk-xenvbd.xml
> @@ -33,6 +33,7 @@
> <source file='/tmp/logs.img'/>
> <target dev='xvdg' bus='xen'/>
> </disk>
> +<controller type='usb' index='0'/>
> <controller type='ide' index='0'/>
> <memballoon model='virtio'/>
> </devices>
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-encrypted-disk.xml b/tests/qemuxml2argvdata/qemuxml2argv-encrypted-disk.xml
> index fdcf624..636f7e4 100644
> --- a/tests/qemuxml2argvdata/qemuxml2argv-encrypted-disk.xml
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-encrypted-disk.xml
> @@ -23,6 +23,7 @@
> </encryption>
> <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
> </disk>
> +<controller type='usb' index='0'/>
> <memballoon model='virtio'/>
> </devices>
> </domain>
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-event_idx.xml b/tests/qemuxml2argvdata/qemuxml2argv-event_idx.xml
> index 81f2200..6dc346d 100644
> --- a/tests/qemuxml2argvdata/qemuxml2argv-event_idx.xml
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-event_idx.xml
> @@ -29,6 +29,7 @@
> <readonly/>
> <address type='drive' controller='0' bus='1' unit='0'/>
> </disk>
> +<controller type='usb' index='0'/>
> <controller type='virtio-serial' index='0'>
> <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/>
> </controller>
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-floppy-drive-fat.xml b/tests/qemuxml2argvdata/qemuxml2argv-floppy-drive-fat.xml
> index ceee0b8..4d6ebd7 100644
> --- a/tests/qemuxml2argvdata/qemuxml2argv-floppy-drive-fat.xml
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-floppy-drive-fat.xml
> @@ -21,6 +21,7 @@
> <readonly/>
> <address type='drive' controller='0' bus='0' unit='0'/>
> </disk>
> +<controller type='usb' index='0'/>
> <controller type='ide' index='0'/>
> <controller type='fdc' index='0'/>
> <memballoon model='virtio'/>
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-fs9p.xml b/tests/qemuxml2argvdata/qemuxml2argv-fs9p.xml
> index e31db48..c187995 100644
> --- a/tests/qemuxml2argvdata/qemuxml2argv-fs9p.xml
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-fs9p.xml
> @@ -19,6 +19,7 @@
> <target dev='hda' bus='ide'/>
> <address type='drive' controller='0' bus='0' unit='0'/>
> </disk>
> +<controller type='usb' index='0'/>
> <controller type='ide' index='0'/>
> <filesystem type='mount'>
> <source dir='/export/to/guest'/>
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-graphics-listen-network.xml b/tests/qemuxml2argvdata/qemuxml2argv-graphics-listen-network.xml
> index a49e5d3..c341054 100644
> --- a/tests/qemuxml2argvdata/qemuxml2argv-graphics-listen-network.xml
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-graphics-listen-network.xml
> @@ -19,6 +19,7 @@
> <target dev='hda' bus='ide'/>
> <address type='drive' controller='0' bus='0' unit='0'/>
> </disk>
> +<controller type='usb' index='0'/>
> <controller type='ide' index='0'/>
> <input type='mouse' bus='ps2'/>
> <graphics type='vnc' port='5903' autoport='no'>
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-graphics-listen-network2.xml b/tests/qemuxml2argvdata/qemuxml2argv-graphics-listen-network2.xml
> index 1c55eff..7985625 100644
> --- a/tests/qemuxml2argvdata/qemuxml2argv-graphics-listen-network2.xml
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-graphics-listen-network2.xml
> @@ -19,6 +19,7 @@
> <target dev='hda' bus='ide'/>
> <address type='drive' controller='0' bus='0' unit='0'/>
> </disk>
> +<controller type='usb' index='0'/>
> <controller type='ide' index='0'/>
> <input type='mouse' bus='ps2'/>
> <graphics type='vnc' listen='1.2.3.4' autoport='yes'>
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-graphics-sdl-fullscreen.xml b/tests/qemuxml2argvdata/qemuxml2argv-graphics-sdl-fullscreen.xml
> index 4e11a28..277c1d4 100644
> --- a/tests/qemuxml2argvdata/qemuxml2argv-graphics-sdl-fullscreen.xml
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-graphics-sdl-fullscreen.xml
> @@ -19,6 +19,7 @@
> <target dev='hda' bus='ide'/>
> <address type='drive' controller='0' bus='0' unit='0'/>
> </disk>
> +<controller type='usb' index='0'/>
> <controller type='ide' index='0'/>
> <input type='mouse' bus='ps2'/>
> <graphics type='sdl' display=':0.1' xauth='/root/.Xauthority' fullscreen='yes'/>
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-graphics-sdl.xml b/tests/qemuxml2argvdata/qemuxml2argv-graphics-sdl.xml
> index cf5aaa9..a5a169a 100644
> --- a/tests/qemuxml2argvdata/qemuxml2argv-graphics-sdl.xml
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-graphics-sdl.xml
> @@ -19,6 +19,7 @@
> <target dev='hda' bus='ide'/>
> <address type='drive' controller='0' bus='0' unit='0'/>
> </disk>
> +<controller type='usb' index='0'/>
> <controller type='ide' index='0'/>
> <input type='mouse' bus='ps2'/>
> <graphics type='sdl' display=':0.1' xauth='/root/.Xauthority'/>
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-graphics-spice-compression.xml b/tests/qemuxml2argvdata/qemuxml2argv-graphics-spice-compression.xml
> index d92211c..33e2190 100644
> --- a/tests/qemuxml2argvdata/qemuxml2argv-graphics-spice-compression.xml
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-graphics-spice-compression.xml
> @@ -19,6 +19,7 @@
> <target dev='hda' bus='ide'/>
> <address type='drive' controller='0' bus='0' unit='0'/>
> </disk>
> +<controller type='usb' index='0'/>
> <controller type='ide' index='0'/>
> <input type='mouse' bus='ps2'/>
> <graphics type='spice' port='5903' tlsPort='5904' autoport='no' listen='127.0.0.1'>
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-graphics-spice-qxl-vga.xml b/tests/qemuxml2argvdata/qemuxml2argv-graphics-spice-qxl-vga.xml
> index 65fc2d9..ac1a915 100644
> --- a/tests/qemuxml2argvdata/qemuxml2argv-graphics-spice-qxl-vga.xml
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-graphics-spice-qxl-vga.xml
> @@ -19,6 +19,7 @@
> <target dev='hda' bus='ide'/>
> <address type='drive' controller='0' bus='0' unit='0'/>
> </disk>
> +<controller type='usb' index='0'/>
> <controller type='ide' index='0'/>
> <input type='mouse' bus='ps2'/>
> <graphics type='spice' port='5903' tlsPort='5904' autoport='no' listen='127.0.0.1'>
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-graphics-spice.xml b/tests/qemuxml2argvdata/qemuxml2argv-graphics-spice.xml
> index 5313b3a..d4e68e4 100644
> --- a/tests/qemuxml2argvdata/qemuxml2argv-graphics-spice.xml
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-graphics-spice.xml
> @@ -19,6 +19,7 @@
> <target dev='hda' bus='ide'/>
> <address type='drive' controller='0' bus='0' unit='0'/>
> </disk>
> +<controller type='usb' index='0'/>
> <controller type='ide' index='0'/>
> <input type='mouse' bus='ps2'/>
> <graphics type='spice' port='5903' tlsPort='5904' autoport='no' listen='127.0.0.1'>
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-graphics-vnc-sasl.xml b/tests/qemuxml2argvdata/qemuxml2argv-graphics-vnc-sasl.xml
> index 1f6c115..339b1fd 100644
> --- a/tests/qemuxml2argvdata/qemuxml2argv-graphics-vnc-sasl.xml
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-graphics-vnc-sasl.xml
> @@ -19,6 +19,7 @@
> <target dev='hda' bus='ide'/>
> <address type='drive' controller='0' bus='0' unit='0'/>
> </disk>
> +<controller type='usb' index='0'/>
> <controller type='ide' index='0'/>
> <input type='mouse' bus='ps2'/>
> <graphics type='vnc' port='5903' autoport='no' listen='127.0.0.1'>
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-graphics-vnc-socket.xml b/tests/qemuxml2argvdata/qemuxml2argv-graphics-vnc-socket.xml
> index 19c9213..e3151e5 100644
> --- a/tests/qemuxml2argvdata/qemuxml2argv-graphics-vnc-socket.xml
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-graphics-vnc-socket.xml
> @@ -19,6 +19,7 @@
> <target dev='hda' bus='ide'/>
> <address type='drive' controller='0' bus='0' unit='0'/>
> </disk>
> +<controller type='usb' index='0'/>
> <controller type='ide' index='0'/>
> <input type='mouse' bus='ps2'/>
> <graphics type='vnc' socket='/tmp/foo.socket'/>
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-graphics-vnc-tls.xml b/tests/qemuxml2argvdata/qemuxml2argv-graphics-vnc-tls.xml
> index 1f6c115..339b1fd 100644
> --- a/tests/qemuxml2argvdata/qemuxml2argv-graphics-vnc-tls.xml
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-graphics-vnc-tls.xml
> @@ -19,6 +19,7 @@
> <target dev='hda' bus='ide'/>
> <address type='drive' controller='0' bus='0' unit='0'/>
> </disk>
> +<controller type='usb' index='0'/>
> <controller type='ide' index='0'/>
> <input type='mouse' bus='ps2'/>
> <graphics type='vnc' port='5903' autoport='no' listen='127.0.0.1'>
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-graphics-vnc.xml b/tests/qemuxml2argvdata/qemuxml2argv-graphics-vnc.xml
> index f93facc..ad2bfc0 100644
> --- a/tests/qemuxml2argvdata/qemuxml2argv-graphics-vnc.xml
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-graphics-vnc.xml
> @@ -19,6 +19,7 @@
> <target dev='hda' bus='ide'/>
> <address type='drive' controller='0' bus='0' unit='0'/>
> </disk>
> +<controller type='usb' index='0'/>
> <controller type='ide' index='0'/>
> <input type='mouse' bus='ps2'/>
> <graphics type='vnc' port='5903' autoport='no' listen='2001:1:2:3:4:5:1234:1234'>
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-hostdev-pci-address.xml b/tests/qemuxml2argvdata/qemuxml2argv-hostdev-pci-address.xml
> index a88ada4..a7f0410 100644
> --- a/tests/qemuxml2argvdata/qemuxml2argv-hostdev-pci-address.xml
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-hostdev-pci-address.xml
> @@ -19,6 +19,7 @@
> <target dev='hda' bus='ide'/>
> <address type='drive' controller='0' bus='0' unit='0'/>
> </disk>
> +<controller type='usb' index='0'/>
> <controller type='ide' index='0'/>
> <hostdev mode='subsystem' type='pci' managed='yes'>
> <source>
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-hostdev-usb-address.xml b/tests/qemuxml2argvdata/qemuxml2argv-hostdev-usb-address.xml
> index c224291..80b4771 100644
> --- a/tests/qemuxml2argvdata/qemuxml2argv-hostdev-usb-address.xml
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-hostdev-usb-address.xml
> @@ -19,6 +19,7 @@
> <target dev='hda' bus='ide'/>
> <address type='drive' controller='0' bus='0' unit='0'/>
> </disk>
> +<controller type='usb' index='0'/>
> <controller type='ide' index='0'/>
> <hostdev mode='subsystem' type='usb' managed='no'>
> <source>
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-hugepages.xml b/tests/qemuxml2argvdata/qemuxml2argv-hugepages.xml
> index 78bf4e1..fa0bb96 100644
> --- a/tests/qemuxml2argvdata/qemuxml2argv-hugepages.xml
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-hugepages.xml
> @@ -22,6 +22,7 @@
> <target dev='hda' bus='ide'/>
> <address type='drive' controller='0' bus='0' unit='0'/>
> </disk>
> +<controller type='usb' index='0'/>
> <controller type='ide' index='0'/>
> <memballoon model='virtio'/>
> </devices>
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-input-usbmouse-addr.xml b/tests/qemuxml2argvdata/qemuxml2argv-input-usbmouse-addr.xml
> index a2fa8e3..858b385 100644
> --- a/tests/qemuxml2argvdata/qemuxml2argv-input-usbmouse-addr.xml
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-input-usbmouse-addr.xml
> @@ -19,6 +19,7 @@
> <target dev='hda' bus='ide'/>
> <address type='drive' controller='0' bus='0' unit='0'/>
> </disk>
> +<controller type='usb' index='0'/>
> <controller type='ide' index='0'/>
> <input type='mouse' bus='usb'>
> <address type='usb' bus='0' port='4'/>
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-input-usbmouse.xml b/tests/qemuxml2argvdata/qemuxml2argv-input-usbmouse.xml
> index b9aff61..cc78f9f 100644
> --- a/tests/qemuxml2argvdata/qemuxml2argv-input-usbmouse.xml
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-input-usbmouse.xml
> @@ -19,6 +19,7 @@
> <target dev='hda' bus='ide'/>
> <address type='drive' controller='0' bus='0' unit='0'/>
> </disk>
> +<controller type='usb' index='0'/>
> <controller type='ide' index='0'/>
> <input type='mouse' bus='usb'/>
> <memballoon model='virtio'/>
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-input-usbtablet.xml b/tests/qemuxml2argvdata/qemuxml2argv-input-usbtablet.xml
> index 18d5cb5..c042ed2 100644
> --- a/tests/qemuxml2argvdata/qemuxml2argv-input-usbtablet.xml
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-input-usbtablet.xml
> @@ -19,6 +19,7 @@
> <target dev='hda' bus='ide'/>
> <address type='drive' controller='0' bus='0' unit='0'/>
> </disk>
> +<controller type='usb' index='0'/>
> <controller type='ide' index='0'/>
> <input type='tablet' bus='usb'/>
> <memballoon model='virtio'/>
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-input-xen.xml b/tests/qemuxml2argvdata/qemuxml2argv-input-xen.xml
> index fb42c95..0b82b3b 100644
> --- a/tests/qemuxml2argvdata/qemuxml2argv-input-xen.xml
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-input-xen.xml
> @@ -19,6 +19,7 @@
> <target dev='hda' bus='ide'/>
> <address type='drive' controller='0' bus='0' unit='0'/>
> </disk>
> +<controller type='usb' index='0'/>
> <controller type='ide' index='0'/>
> <input type='mouse' bus='xen'/>
> <graphics type='vnc' port='5903' autoport='no' listen='127.0.0.1'>
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-kvmclock.xml b/tests/qemuxml2argvdata/qemuxml2argv-kvmclock.xml
> index 6ff3b35..fbd31ec 100644
> --- a/tests/qemuxml2argvdata/qemuxml2argv-kvmclock.xml
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-kvmclock.xml
> @@ -16,6 +16,7 @@
> <on_crash>destroy</on_crash>
> <devices>
> <emulator>/usr/bin/kvm</emulator>
> +<controller type='usb' index='0'/>
> <memballoon model='virtio'/>
> </devices>
> </domain>
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-lease.xml b/tests/qemuxml2argvdata/qemuxml2argv-lease.xml
> index 7efe1ef..b998f62 100644
> --- a/tests/qemuxml2argvdata/qemuxml2argv-lease.xml
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-lease.xml
> @@ -25,6 +25,7 @@
> <readonly/>
> <address type='drive' controller='0' bus='1' unit='0'/>
> </disk>
> +<controller type='usb' index='0'/>
> <controller type='ide' index='0'/>
> <lease>
> <lockspace>somearea</lockspace>
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-memtune.xml b/tests/qemuxml2argvdata/qemuxml2argv-memtune.xml
> index 37b5c88..c81a253 100644
> --- a/tests/qemuxml2argvdata/qemuxml2argv-memtune.xml
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-memtune.xml
> @@ -24,6 +24,7 @@
> <target dev='hda' bus='ide'/>
> <address type='drive' controller='0' bus='0' unit='0'/>
> </disk>
> +<controller type='usb' index='0'/>
> <controller type='ide' index='0'/>
> <memballoon model='virtio'/>
> </devices>
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-migrate.xml b/tests/qemuxml2argvdata/qemuxml2argv-migrate.xml
> index 99e81ae..e16fce5 100644
> --- a/tests/qemuxml2argvdata/qemuxml2argv-migrate.xml
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-migrate.xml
> @@ -19,6 +19,7 @@
> <target dev='hda' bus='ide'/>
> <address type='drive' controller='0' bus='0' unit='0'/>
> </disk>
> +<controller type='usb' index='0'/>
> <controller type='ide' index='0'/>
> <memballoon model='virtio'/>
> </devices>
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-minimal.xml b/tests/qemuxml2argvdata/qemuxml2argv-minimal.xml
> index 51eb59a..d060271 100644
> --- a/tests/qemuxml2argvdata/qemuxml2argv-minimal.xml
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-minimal.xml
> @@ -24,6 +24,7 @@
> <target dev='hda' bus='ide'/>
> <address type='drive' controller='0' bus='0' unit='0'/>
> </disk>
> +<controller type='usb' index='0'/>
> <controller type='ide' index='0'/>
> <memballoon model='virtio'/>
> </devices>
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-misc-acpi.xml b/tests/qemuxml2argvdata/qemuxml2argv-misc-acpi.xml
> index d5f8d2f..a4fce92 100644
> --- a/tests/qemuxml2argvdata/qemuxml2argv-misc-acpi.xml
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-misc-acpi.xml
> @@ -22,6 +22,7 @@
> <target dev='hda' bus='ide'/>
> <address type='drive' controller='0' bus='0' unit='0'/>
> </disk>
> +<controller type='usb' index='0'/>
> <controller type='ide' index='0'/>
> <memballoon model='virtio'/>
> </devices>
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-misc-no-reboot.xml b/tests/qemuxml2argvdata/qemuxml2argv-misc-no-reboot.xml
> index b06493f..b84a0b4 100644
> --- a/tests/qemuxml2argvdata/qemuxml2argv-misc-no-reboot.xml
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-misc-no-reboot.xml
> @@ -19,6 +19,7 @@
> <target dev='hda' bus='ide'/>
> <address type='drive' controller='0' bus='0' unit='0'/>
> </disk>
> +<controller type='usb' index='0'/>
> <controller type='ide' index='0'/>
> <memballoon model='virtio'/>
> </devices>
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-misc-uuid.xml b/tests/qemuxml2argvdata/qemuxml2argv-misc-uuid.xml
> index d5f8d2f..a4fce92 100644
> --- a/tests/qemuxml2argvdata/qemuxml2argv-misc-uuid.xml
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-misc-uuid.xml
> @@ -22,6 +22,7 @@
> <target dev='hda' bus='ide'/>
> <address type='drive' controller='0' bus='0' unit='0'/>
> </disk>
> +<controller type='usb' index='0'/>
> <controller type='ide' index='0'/>
> <memballoon model='virtio'/>
> </devices>
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-monitor-json.xml b/tests/qemuxml2argvdata/qemuxml2argv-monitor-json.xml
> index 1901715..6760304 100644
> --- a/tests/qemuxml2argvdata/qemuxml2argv-monitor-json.xml
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-monitor-json.xml
> @@ -19,6 +19,7 @@
> <source file='/dev/hda1'/>
> <target dev='hda'/>
> </disk>
> +<controller type='usb' index='0'/>
> <memballoon model='virtio'/>
> </devices>
> </domain>
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-net-bandwidth.xml b/tests/qemuxml2argvdata/qemuxml2argv-net-bandwidth.xml
> index 852c97b..d5e4b9a 100644
> --- a/tests/qemuxml2argvdata/qemuxml2argv-net-bandwidth.xml
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-net-bandwidth.xml
> @@ -34,6 +34,7 @@
> <readonly/>
> <address type='drive' controller='0' bus='1' unit='0'/>
> </disk>
> +<controller type='usb' index='0'/>
> <controller type='ide' index='0'>
> <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'/>
> </controller>
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-net-eth-ifname.xml b/tests/qemuxml2argvdata/qemuxml2argv-net-eth-ifname.xml
> index a638e06..bd5a153 100644
> --- a/tests/qemuxml2argvdata/qemuxml2argv-net-eth-ifname.xml
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-net-eth-ifname.xml
> @@ -19,6 +19,7 @@
> <target dev='hda' bus='ide'/>
> <address type='drive' controller='0' bus='0' unit='0'/>
> </disk>
> +<controller type='usb' index='0'/>
> <controller type='ide' index='0'/>
> <interface type='ethernet'>
> <mac address='00:11:22:33:44:55'/>
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-net-eth.xml b/tests/qemuxml2argvdata/qemuxml2argv-net-eth.xml
> index d5c4b36..61836be 100644
> --- a/tests/qemuxml2argvdata/qemuxml2argv-net-eth.xml
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-net-eth.xml
> @@ -19,6 +19,7 @@
> <target dev='hda' bus='ide'/>
> <address type='drive' controller='0' bus='0' unit='0'/>
> </disk>
> +<controller type='usb' index='0'/>
> <controller type='ide' index='0'/>
> <interface type='ethernet'>
> <mac address='00:11:22:33:44:55'/>
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-net-user.xml b/tests/qemuxml2argvdata/qemuxml2argv-net-user.xml
> index 540808d..4a6f041 100644
> --- a/tests/qemuxml2argvdata/qemuxml2argv-net-user.xml
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-net-user.xml
> @@ -19,6 +19,7 @@
> <target dev='hda' bus='ide'/>
> <address type='drive' controller='0' bus='0' unit='0'/>
> </disk>
> +<controller type='usb' index='0'/>
> <controller type='ide' index='0'/>
> <interface type='user'>
> <mac address='00:11:22:33:44:55'/>
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-net-virtio-device.xml b/tests/qemuxml2argvdata/qemuxml2argv-net-virtio-device.xml
> index 4e7abcd..013c444 100644
> --- a/tests/qemuxml2argvdata/qemuxml2argv-net-virtio-device.xml
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-net-virtio-device.xml
> @@ -19,6 +19,7 @@
> <target dev='hda' bus='ide'/>
> <address type='drive' controller='0' bus='0' unit='0'/>
> </disk>
> +<controller type='usb' index='0'/>
> <controller type='ide' index='0'/>
> <interface type='user'>
> <mac address='00:11:22:33:44:55'/>
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-net-virtio-netdev.xml b/tests/qemuxml2argvdata/qemuxml2argv-net-virtio-netdev.xml
> index 5f2b12c..2e46562 100644
> --- a/tests/qemuxml2argvdata/qemuxml2argv-net-virtio-netdev.xml
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-net-virtio-netdev.xml
> @@ -18,6 +18,7 @@
> <source dev='/dev/HostVG/QEMUGuest1'/>
> <target dev='hda' bus='ide'/>
> </disk>
> +<controller type='usb' index='0'/>
> <interface type='user'>
> <mac address='00:11:22:33:44:55'/>
> <model type='virtio'/>
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-net-virtio-network-portgroup.xml b/tests/qemuxml2argvdata/qemuxml2argv-net-virtio-network-portgroup.xml
> index 0f6e076..4a56f59 100644
> --- a/tests/qemuxml2argvdata/qemuxml2argv-net-virtio-network-portgroup.xml
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-net-virtio-network-portgroup.xml
> @@ -19,6 +19,7 @@
> <target dev='hda' bus='ide'/>
> <address type='drive' controller='0' bus='0' unit='0'/>
> </disk>
> +<controller type='usb' index='0'/>
> <controller type='ide' index='0'/>
> <interface type='network'>
> <mac address='00:11:22:33:44:55'/>
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-net-virtio.xml b/tests/qemuxml2argvdata/qemuxml2argv-net-virtio.xml
> index ec930b3..f17b5a9 100644
> --- a/tests/qemuxml2argvdata/qemuxml2argv-net-virtio.xml
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-net-virtio.xml
> @@ -19,6 +19,7 @@
> <target dev='hda' bus='ide'/>
> <address type='drive' controller='0' bus='0' unit='0'/>
> </disk>
> +<controller type='usb' index='0'/>
> <controller type='ide' index='0'/>
> <interface type='user'>
> <mac address='00:11:22:33:44:55'/>
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-nographics-vga.xml b/tests/qemuxml2argvdata/qemuxml2argv-nographics-vga.xml
> index 99e81ae..e16fce5 100644
> --- a/tests/qemuxml2argvdata/qemuxml2argv-nographics-vga.xml
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-nographics-vga.xml
> @@ -19,6 +19,7 @@
> <target dev='hda' bus='ide'/>
> <address type='drive' controller='0' bus='0' unit='0'/>
> </disk>
> +<controller type='usb' index='0'/>
> <controller type='ide' index='0'/>
> <memballoon model='virtio'/>
> </devices>
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-parallel-tcp.xml b/tests/qemuxml2argvdata/qemuxml2argv-parallel-tcp.xml
> index 5c50ecc..67cf661 100644
> --- a/tests/qemuxml2argvdata/qemuxml2argv-parallel-tcp.xml
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-parallel-tcp.xml
> @@ -19,6 +19,7 @@
> <target dev='hda' bus='ide'/>
> <address type='drive' controller='0' bus='0' unit='0'/>
> </disk>
> +<controller type='usb' index='0'/>
> <controller type='ide' index='0'/>
> <parallel type='tcp'>
> <source mode='bind' host='127.0.0.1' service='9999'/>
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-pci-rom.xml b/tests/qemuxml2argvdata/qemuxml2argv-pci-rom.xml
> index 731a69d..51eecbc 100644
> --- a/tests/qemuxml2argvdata/qemuxml2argv-pci-rom.xml
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-pci-rom.xml
> @@ -19,6 +19,7 @@
> <target dev='hda' bus='ide'/>
> <address type='drive' controller='0' bus='0' unit='0'/>
> </disk>
> +<controller type='usb' index='0'/>
> <controller type='ide' index='0'/>
> <interface type='user'>
> <mac address='52:54:00:24:a5:9f'/>
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-qemu-ns-no-env.xml b/tests/qemuxml2argvdata/qemuxml2argv-qemu-ns-no-env.xml
> index 0d9dd98..9bf8da7 100644
> --- a/tests/qemuxml2argvdata/qemuxml2argv-qemu-ns-no-env.xml
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-qemu-ns-no-env.xml
> @@ -19,6 +19,7 @@
> <target dev='hda' bus='ide'/>
> <address type='drive' controller='0' bus='0' unit='0'/>
> </disk>
> +<controller type='usb' index='0'/>
> <controller type='ide' index='0'/>
> <memballoon model='virtio'/>
> </devices>
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-restore-v1.xml b/tests/qemuxml2argvdata/qemuxml2argv-restore-v1.xml
> index 479a1d9..317f793 100644
> --- a/tests/qemuxml2argvdata/qemuxml2argv-restore-v1.xml
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-restore-v1.xml
> @@ -19,6 +19,7 @@
> <target dev='hda' bus='ide'/>
> <address type='drive' controller='0' bus='0' unit='0'/>
> </disk>
> +<controller type='usb' index='0'/>
> <controller type='ide' index='0'/>
> <memballoon model='virtio'/>
> </devices>
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-restore-v2-fd.xml b/tests/qemuxml2argvdata/qemuxml2argv-restore-v2-fd.xml
> index 99e81ae..e16fce5 100644
> --- a/tests/qemuxml2argvdata/qemuxml2argv-restore-v2-fd.xml
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-restore-v2-fd.xml
> @@ -19,6 +19,7 @@
> <target dev='hda' bus='ide'/>
> <address type='drive' controller='0' bus='0' unit='0'/>
> </disk>
> +<controller type='usb' index='0'/>
> <controller type='ide' index='0'/>
> <memballoon model='virtio'/>
> </devices>
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-restore-v2.xml b/tests/qemuxml2argvdata/qemuxml2argv-restore-v2.xml
> index 99e81ae..e16fce5 100644
> --- a/tests/qemuxml2argvdata/qemuxml2argv-restore-v2.xml
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-restore-v2.xml
> @@ -19,6 +19,7 @@
> <target dev='hda' bus='ide'/>
> <address type='drive' controller='0' bus='0' unit='0'/>
> </disk>
> +<controller type='usb' index='0'/>
> <controller type='ide' index='0'/>
> <memballoon model='virtio'/>
> </devices>
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-seclabel-dynamic-baselabel.xml b/tests/qemuxml2argvdata/qemuxml2argv-seclabel-dynamic-baselabel.xml
> index fea0eb7..dfbdf9e 100644
> --- a/tests/qemuxml2argvdata/qemuxml2argv-seclabel-dynamic-baselabel.xml
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-seclabel-dynamic-baselabel.xml
> @@ -19,6 +19,7 @@
> <target dev='hda' bus='ide'/>
> <address type='drive' controller='0' bus='0' unit='0'/>
> </disk>
> +<controller type='usb' index='0'/>
> <controller type='ide' index='0'/>
> <memballoon model='virtio'/>
> </devices>
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-seclabel-dynamic-override.xml b/tests/qemuxml2argvdata/qemuxml2argv-seclabel-dynamic-override.xml
> index 19b1cbb..c34243b 100644
> --- a/tests/qemuxml2argvdata/qemuxml2argv-seclabel-dynamic-override.xml
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-seclabel-dynamic-override.xml
> @@ -31,6 +31,7 @@
> <readonly/>
> <address type='drive' controller='0' bus='0' unit='0'/>
> </disk>
> +<controller type='usb' index='0'/>
> <controller type='ide' index='0'/>
> <memballoon model='virtio'/>
> </devices>
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-seclabel-none.xml b/tests/qemuxml2argvdata/qemuxml2argv-seclabel-none.xml
> index 1ef97ce..7b48206 100644
> --- a/tests/qemuxml2argvdata/qemuxml2argv-seclabel-none.xml
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-seclabel-none.xml
> @@ -19,6 +19,7 @@
> <target dev='hda' bus='ide'/>
> <address type='drive' controller='0' bus='0' unit='0'/>
> </disk>
> +<controller type='usb' index='0'/>
> <controller type='ide' index='0'/>
> <memballoon model='virtio'/>
> </devices>
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-seclabel-static.xml b/tests/qemuxml2argvdata/qemuxml2argv-seclabel-static.xml
> index 416bd86..2a8dd5b 100644
> --- a/tests/qemuxml2argvdata/qemuxml2argv-seclabel-static.xml
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-seclabel-static.xml
> @@ -19,6 +19,7 @@
> <target dev='hda' bus='ide'/>
> <address type='drive' controller='0' bus='0' unit='0'/>
> </disk>
> +<controller type='usb' index='0'/>
> <controller type='ide' index='0'/>
> <memballoon model='virtio'/>
> </devices>
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-serial-dev-chardev.xml b/tests/qemuxml2argvdata/qemuxml2argv-serial-dev-chardev.xml
> index ea5a3f8..b6f9d29 100644
> --- a/tests/qemuxml2argvdata/qemuxml2argv-serial-dev-chardev.xml
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-serial-dev-chardev.xml
> @@ -19,6 +19,7 @@
> <target dev='hda' bus='ide'/>
> <address type='drive' controller='0' bus='0' unit='0'/>
> </disk>
> +<controller type='usb' index='0'/>
> <controller type='ide' index='0'/>
> <serial type='dev'>
> <source path='/dev/ttyS2'/>
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-serial-dev.xml b/tests/qemuxml2argvdata/qemuxml2argv-serial-dev.xml
> index 41f473a..56f9006 100644
> --- a/tests/qemuxml2argvdata/qemuxml2argv-serial-dev.xml
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-serial-dev.xml
> @@ -19,6 +19,7 @@
> <target dev='hda' bus='ide'/>
> <address type='drive' controller='0' bus='0' unit='0'/>
> </disk>
> +<controller type='usb' index='0'/>
> <controller type='ide' index='0'/>
> <serial type='dev'>
> <source path='/dev/ttyS2'/>
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-serial-file-chardev.xml b/tests/qemuxml2argvdata/qemuxml2argv-serial-file-chardev.xml
> index 9a3e197..c64da73 100644
> --- a/tests/qemuxml2argvdata/qemuxml2argv-serial-file-chardev.xml
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-serial-file-chardev.xml
> @@ -19,6 +19,7 @@
> <target dev='hda' bus='ide'/>
> <address type='drive' controller='0' bus='0' unit='0'/>
> </disk>
> +<controller type='usb' index='0'/>
> <controller type='ide' index='0'/>
> <serial type='file'>
> <source path='/tmp/serial.log'/>
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-serial-file.xml b/tests/qemuxml2argvdata/qemuxml2argv-serial-file.xml
> index 975d81e..54bfc93 100644
> --- a/tests/qemuxml2argvdata/qemuxml2argv-serial-file.xml
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-serial-file.xml
> @@ -19,6 +19,7 @@
> <target dev='hda' bus='ide'/>
> <address type='drive' controller='0' bus='0' unit='0'/>
> </disk>
> +<controller type='usb' index='0'/>
> <controller type='ide' index='0'/>
> <serial type='file'>
> <source path='/tmp/serial.log'/>
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-serial-many-chardev.xml b/tests/qemuxml2argvdata/qemuxml2argv-serial-many-chardev.xml
> index d6116e8..29e12be 100644
> --- a/tests/qemuxml2argvdata/qemuxml2argv-serial-many-chardev.xml
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-serial-many-chardev.xml
> @@ -19,6 +19,7 @@
> <target dev='hda' bus='ide'/>
> <address type='drive' controller='0' bus='0' unit='0'/>
> </disk>
> +<controller type='usb' index='0'/>
> <controller type='ide' index='0'/>
> <serial type='pty'>
> <target port='0'/>
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-serial-many.xml b/tests/qemuxml2argvdata/qemuxml2argv-serial-many.xml
> index e68ad79..371fc44 100644
> --- a/tests/qemuxml2argvdata/qemuxml2argv-serial-many.xml
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-serial-many.xml
> @@ -19,6 +19,7 @@
> <target dev='hda' bus='ide'/>
> <address type='drive' controller='0' bus='0' unit='0'/>
> </disk>
> +<controller type='usb' index='0'/>
> <controller type='ide' index='0'/>
> <serial type='pty'>
> <target port='0'/>
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-serial-pty-chardev.xml b/tests/qemuxml2argvdata/qemuxml2argv-serial-pty-chardev.xml
> index 57d1b74..17fc702 100644
> --- a/tests/qemuxml2argvdata/qemuxml2argv-serial-pty-chardev.xml
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-serial-pty-chardev.xml
> @@ -19,6 +19,7 @@
> <target dev='hda' bus='ide'/>
> <address type='drive' controller='0' bus='0' unit='0'/>
> </disk>
> +<controller type='usb' index='0'/>
> <controller type='ide' index='0'/>
> <serial type='pty'>
> <target port='0'/>
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-serial-pty.xml b/tests/qemuxml2argvdata/qemuxml2argv-serial-pty.xml
> index 19dd131..7e2ca30 100644
> --- a/tests/qemuxml2argvdata/qemuxml2argv-serial-pty.xml
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-serial-pty.xml
> @@ -19,6 +19,7 @@
> <target dev='hda' bus='ide'/>
> <address type='drive' controller='0' bus='0' unit='0'/>
> </disk>
> +<controller type='usb' index='0'/>
> <controller type='ide' index='0'/>
> <serial type='pty'>
> <target port='0'/>
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-serial-tcp-chardev.xml b/tests/qemuxml2argvdata/qemuxml2argv-serial-tcp-chardev.xml
> index cd43384..2b1f5d4 100644
> --- a/tests/qemuxml2argvdata/qemuxml2argv-serial-tcp-chardev.xml
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-serial-tcp-chardev.xml
> @@ -19,6 +19,7 @@
> <target dev='hda' bus='ide'/>
> <address type='drive' controller='0' bus='0' unit='0'/>
> </disk>
> +<controller type='usb' index='0'/>
> <controller type='ide' index='0'/>
> <serial type='tcp'>
> <source mode='connect' host='127.0.0.1' service='9999'/>
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-serial-tcp-telnet-chardev.xml b/tests/qemuxml2argvdata/qemuxml2argv-serial-tcp-telnet-chardev.xml
> index 14bead4..1cebeff 100644
> --- a/tests/qemuxml2argvdata/qemuxml2argv-serial-tcp-telnet-chardev.xml
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-serial-tcp-telnet-chardev.xml
> @@ -19,6 +19,7 @@
> <target dev='hda' bus='ide'/>
> <address type='drive' controller='0' bus='0' unit='0'/>
> </disk>
> +<controller type='usb' index='0'/>
> <controller type='ide' index='0'/>
> <serial type='tcp'>
> <source mode='bind' host='127.0.0.1' service='9999'/>
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-serial-tcp-telnet.xml b/tests/qemuxml2argvdata/qemuxml2argv-serial-tcp-telnet.xml
> index ad5a038..3b8dca8 100644
> --- a/tests/qemuxml2argvdata/qemuxml2argv-serial-tcp-telnet.xml
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-serial-tcp-telnet.xml
> @@ -19,6 +19,7 @@
> <target dev='hda' bus='ide'/>
> <address type='drive' controller='0' bus='0' unit='0'/>
> </disk>
> +<controller type='usb' index='0'/>
> <controller type='ide' index='0'/>
> <serial type='tcp'>
> <source mode='bind' host='127.0.0.1' service='9999'/>
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-serial-tcp.xml b/tests/qemuxml2argvdata/qemuxml2argv-serial-tcp.xml
> index 45ad585..fe19f8b 100644
> --- a/tests/qemuxml2argvdata/qemuxml2argv-serial-tcp.xml
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-serial-tcp.xml
> @@ -19,6 +19,7 @@
> <target dev='hda' bus='ide'/>
> <address type='drive' controller='0' bus='0' unit='0'/>
> </disk>
> +<controller type='usb' index='0'/>
> <controller type='ide' index='0'/>
> <serial type='tcp'>
> <source mode='connect' host='127.0.0.1' service='9999'/>
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-serial-udp-chardev.xml b/tests/qemuxml2argvdata/qemuxml2argv-serial-udp-chardev.xml
> index 9627c67..52ccc94 100644
> --- a/tests/qemuxml2argvdata/qemuxml2argv-serial-udp-chardev.xml
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-serial-udp-chardev.xml
> @@ -19,6 +19,7 @@
> <target dev='hda' bus='ide'/>
> <address type='drive' controller='0' bus='0' unit='0'/>
> </disk>
> +<controller type='usb' index='0'/>
> <controller type='ide' index='0'/>
> <serial type='udp'>
> <source mode='bind' host='127.0.0.1' service='9999'/>
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-serial-udp.xml b/tests/qemuxml2argvdata/qemuxml2argv-serial-udp.xml
> index f606ea4..31c9104 100644
> --- a/tests/qemuxml2argvdata/qemuxml2argv-serial-udp.xml
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-serial-udp.xml
> @@ -19,6 +19,7 @@
> <target dev='hda' bus='ide'/>
> <address type='drive' controller='0' bus='0' unit='0'/>
> </disk>
> +<controller type='usb' index='0'/>
> <controller type='ide' index='0'/>
> <serial type='udp'>
> <source mode='bind' host='127.0.0.1' service='9999'/>
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-serial-unix-chardev.xml b/tests/qemuxml2argvdata/qemuxml2argv-serial-unix-chardev.xml
> index 4ed72aa..e86c1ae 100644
> --- a/tests/qemuxml2argvdata/qemuxml2argv-serial-unix-chardev.xml
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-serial-unix-chardev.xml
> @@ -19,6 +19,7 @@
> <target dev='hda' bus='ide'/>
> <address type='drive' controller='0' bus='0' unit='0'/>
> </disk>
> +<controller type='usb' index='0'/>
> <controller type='ide' index='0'/>
> <serial type='unix'>
> <source mode='connect' path='/tmp/serial.sock'/>
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-serial-unix.xml b/tests/qemuxml2argvdata/qemuxml2argv-serial-unix.xml
> index 4685ad4..053cec1 100644
> --- a/tests/qemuxml2argvdata/qemuxml2argv-serial-unix.xml
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-serial-unix.xml
> @@ -19,6 +19,7 @@
> <target dev='hda' bus='ide'/>
> <address type='drive' controller='0' bus='0' unit='0'/>
> </disk>
> +<controller type='usb' index='0'/>
> <controller type='ide' index='0'/>
> <serial type='unix'>
> <source mode='connect' path='/tmp/serial.sock'/>
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-serial-vc.xml b/tests/qemuxml2argvdata/qemuxml2argv-serial-vc.xml
> index 6100332..c086092 100644
> --- a/tests/qemuxml2argvdata/qemuxml2argv-serial-vc.xml
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-serial-vc.xml
> @@ -19,6 +19,7 @@
> <target dev='hda' bus='ide'/>
> <address type='drive' controller='0' bus='0' unit='0'/>
> </disk>
> +<controller type='usb' index='0'/>
> <controller type='ide' index='0'/>
> <serial type='vc'>
> <target port='0'/>
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-smp.xml b/tests/qemuxml2argvdata/qemuxml2argv-smp.xml
> index cba15dc..9d0d918 100644
> --- a/tests/qemuxml2argvdata/qemuxml2argv-smp.xml
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-smp.xml
> @@ -22,6 +22,7 @@
> <target dev='hda' bus='ide'/>
> <address type='drive' controller='0' bus='0' unit='0'/>
> </disk>
> +<controller type='usb' index='0'/>
> <controller type='ide' index='0'/>
> <memballoon model='virtio'/>
> </devices>
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-sound.xml b/tests/qemuxml2argvdata/qemuxml2argv-sound.xml
> index 57cabb4..e5b3f13 100644
> --- a/tests/qemuxml2argvdata/qemuxml2argv-sound.xml
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-sound.xml
> @@ -19,6 +19,7 @@
> <target dev='hda' bus='ide'/>
> <address type='drive' controller='0' bus='0' unit='0'/>
> </disk>
> +<controller type='usb' index='0'/>
> <controller type='ide' index='0'/>
> <sound model='pcspk'/>
> <sound model='es1370'/>
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-virtio-lun.xml b/tests/qemuxml2argvdata/qemuxml2argv-virtio-lun.xml
> index 63107d5..1b183aa 100644
> --- a/tests/qemuxml2argvdata/qemuxml2argv-virtio-lun.xml
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-virtio-lun.xml
> @@ -28,6 +28,7 @@
> <target dev='vdb' bus='virtio'/>
> <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/>
> </disk>
> +<controller type='usb' index='0'/>
> <controller type='virtio-serial' index='0'>
> <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/>
> </controller>
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-watchdog.xml b/tests/qemuxml2argvdata/qemuxml2argv-watchdog.xml
> index 06da70b..e1f6e56 100644
> --- a/tests/qemuxml2argvdata/qemuxml2argv-watchdog.xml
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-watchdog.xml
> @@ -19,6 +19,7 @@
> <target dev='hda' bus='ide'/>
> <address type='drive' controller='0' bus='0' unit='0'/>
> </disk>
> +<controller type='usb' index='0'/>
> <controller type='ide' index='0'/>
> <watchdog model='ib700' action='poweroff'/>
> <memballoon model='virtio'/>
> diff --git a/tests/qemuxml2xmloutdata/qemuxml2xmlout-balloon-device-auto.xml b/tests/qemuxml2xmloutdata/qemuxml2xmlout-balloon-device-auto.xml
> index 479a1d9..317f793 100644
> --- a/tests/qemuxml2xmloutdata/qemuxml2xmlout-balloon-device-auto.xml
> +++ b/tests/qemuxml2xmloutdata/qemuxml2xmlout-balloon-device-auto.xml
> @@ -19,6 +19,7 @@
> <target dev='hda' bus='ide'/>
> <address type='drive' controller='0' bus='0' unit='0'/>
> </disk>
> +<controller type='usb' index='0'/>
> <controller type='ide' index='0'/>
> <memballoon model='virtio'/>
> </devices>
> diff --git a/tests/qemuxml2xmloutdata/qemuxml2xmlout-channel-virtio-auto.xml b/tests/qemuxml2xmloutdata/qemuxml2xmlout-channel-virtio-auto.xml
> index a52ea8e..1602b6c 100644
> --- a/tests/qemuxml2xmloutdata/qemuxml2xmlout-channel-virtio-auto.xml
> +++ b/tests/qemuxml2xmloutdata/qemuxml2xmlout-channel-virtio-auto.xml
> @@ -19,6 +19,7 @@
> <target dev='hda' bus='ide'/>
> <address type='drive' controller='0' bus='0' unit='0'/>
> </disk>
> +<controller type='usb' index='0'/>
> <controller type='ide' index='0'/>
> <controller type='virtio-serial' index='0' ports='16' vectors='4'/>
> <controller type='virtio-serial' index='1'>
> diff --git a/tests/qemuxml2xmloutdata/qemuxml2xmlout-console-compat-auto.xml b/tests/qemuxml2xmloutdata/qemuxml2xmlout-console-compat-auto.xml
> index 9011522..f579b11 100644
> --- a/tests/qemuxml2xmloutdata/qemuxml2xmlout-console-compat-auto.xml
> +++ b/tests/qemuxml2xmloutdata/qemuxml2xmlout-console-compat-auto.xml
> @@ -19,6 +19,7 @@
> <target dev='hda' bus='ide'/>
> <address type='drive' controller='0' bus='0' unit='0'/>
> </disk>
> +<controller type='usb' index='0'/>
> <controller type='ide' index='0'/>
> <serial type='pty'>
> <target port='0'/>
> diff --git a/tests/qemuxml2xmloutdata/qemuxml2xmlout-console-virtio.xml b/tests/qemuxml2xmloutdata/qemuxml2xmlout-console-virtio.xml
> index b64c7e5..f1f70c7 100644
> --- a/tests/qemuxml2xmloutdata/qemuxml2xmlout-console-virtio.xml
> +++ b/tests/qemuxml2xmloutdata/qemuxml2xmlout-console-virtio.xml
> @@ -19,6 +19,7 @@
> <target dev='hda' bus='ide'/>
> <address type='drive' controller='0' bus='0' unit='0'/>
> </disk>
> +<controller type='usb' index='0'/>
> <controller type='ide' index='0'/>
> <controller type='virtio-serial' index='0'/>
> <console type='pty'>
> diff --git a/tests/qemuxml2xmloutdata/qemuxml2xmlout-disk-cdrom-empty.xml b/tests/qemuxml2xmloutdata/qemuxml2xmlout-disk-cdrom-empty.xml
> index 9299da3..897b0d2 100644
> --- a/tests/qemuxml2xmloutdata/qemuxml2xmlout-disk-cdrom-empty.xml
> +++ b/tests/qemuxml2xmloutdata/qemuxml2xmlout-disk-cdrom-empty.xml
> @@ -25,6 +25,7 @@
> <readonly/>
> <address type='drive' controller='0' bus='1' unit='0'/>
> </disk>
> +<controller type='usb' index='0'/>
> <controller type='ide' index='0'/>
> <memballoon model='virtio'/>
> </devices>
> diff --git a/tests/qemuxml2xmloutdata/qemuxml2xmlout-disk-scsi-device-auto.xml b/tests/qemuxml2xmloutdata/qemuxml2xmlout-disk-scsi-device-auto.xml
> index 530c0a6..17b59d8 100644
> --- a/tests/qemuxml2xmloutdata/qemuxml2xmlout-disk-scsi-device-auto.xml
> +++ b/tests/qemuxml2xmloutdata/qemuxml2xmlout-disk-scsi-device-auto.xml
> @@ -24,6 +24,7 @@
> <target dev='sda' bus='scsi'/>
> <address type='drive' controller='0' bus='0' unit='0'/>
> </disk>
> +<controller type='usb' index='0'/>
> <controller type='ide' index='0'/>
> <controller type='scsi' index='0'/>
> <memballoon model='virtio'/>
> diff --git a/tests/qemuxml2xmloutdata/qemuxml2xmlout-graphics-listen-network2.xml b/tests/qemuxml2xmloutdata/qemuxml2xmlout-graphics-listen-network2.xml
> index d369b89..188e14a 100644
> --- a/tests/qemuxml2xmloutdata/qemuxml2xmlout-graphics-listen-network2.xml
> +++ b/tests/qemuxml2xmloutdata/qemuxml2xmlout-graphics-listen-network2.xml
> @@ -19,6 +19,7 @@
> <target dev='hda' bus='ide'/>
> <address type='drive' controller='0' bus='0' unit='0'/>
> </disk>
> +<controller type='usb' index='0'/>
> <controller type='ide' index='0'/>
> <input type='mouse' bus='ps2'/>
> <graphics type='vnc' port='-1' autoport='yes' listen='1.2.3.4'>
> diff --git a/tests/qemuxml2xmloutdata/qemuxml2xmlout-graphics-spice-timeout.xml b/tests/qemuxml2xmloutdata/qemuxml2xmlout-graphics-spice-timeout.xml
> index ac72822..53298d1 100644
> --- a/tests/qemuxml2xmloutdata/qemuxml2xmlout-graphics-spice-timeout.xml
> +++ b/tests/qemuxml2xmloutdata/qemuxml2xmlout-graphics-spice-timeout.xml
> @@ -58,6 +58,7 @@
> <controller type='virtio-serial' index='0'>
> <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/>
> </controller>
> +<controller type='usb' index='0'/>
> <interface type='ethernet'>
> <mac address='52:54:00:71:70:89'/>
> <script path='/etc/qemu-ifup'/>
> diff --git a/tests/qemuxml2xmloutdata/qemuxml2xmlout-metadata.xml b/tests/qemuxml2xmloutdata/qemuxml2xmlout-metadata.xml
> index a029404..01b820d 100644
> --- a/tests/qemuxml2xmloutdata/qemuxml2xmlout-metadata.xml
> +++ b/tests/qemuxml2xmloutdata/qemuxml2xmlout-metadata.xml
> @@ -24,6 +24,7 @@
> <address type='drive' controller='0' bus='0' unit='0'/>
> </disk>
> <controller type='ide' index='0'/>
> +<controller type='usb' index='0'/>
> <memballoon model='virtio'/>
> </devices>
> </domain>
> diff --git a/tests/qemuxml2xmloutdata/qemuxml2xmlout-serial-target-port-auto.xml b/tests/qemuxml2xmloutdata/qemuxml2xmlout-serial-target-port-auto.xml
> index 878418a..44472c7 100644
> --- a/tests/qemuxml2xmloutdata/qemuxml2xmlout-serial-target-port-auto.xml
> +++ b/tests/qemuxml2xmloutdata/qemuxml2xmlout-serial-target-port-auto.xml
> @@ -20,6 +20,7 @@
> <address type='drive' controller='0' bus='0' unit='0'/>
> </disk>
> <controller type='ide' index='0'/>
> +<controller type='usb' index='0'/>
> <serial type='pty'>
> <target port='0'/>
> </serial>
ACK
Osier
More information about the libvir-list
mailing list