--- src/qemu/qemu_capabilities.c | 31 +++++++++++++++++++++++++++++++ src/qemu/qemu_capabilities.h | 10 ++++++++++ tests/qemuhelptest.c | 13 ++++++++++--- 3 files changed, 51 insertions(+), 3 deletions(-) diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c index f665de4..a33ad4e 100644 --- a/src/qemu/qemu_capabilities.c +++ b/src/qemu/qemu_capabilities.c @@ -125,6 +125,17 @@ VIR_ENUM_IMPL(qemuCaps, QEMU_CAPS_LAST, "sga", "virtio-blk-pci.event_idx", "virtio-net-pci.event_idx", + + "piix3-usb-uhci", /* 65 */ + "piix4-usb-uhci", + "usb-ehci", + "ich9-usb-ehci1", + "ich9-usb-uhci1", + + "ich9-usb-uhci2", /* 70 */ + "ich9-usb-uhci3", + "vt82c686b-usb-uhci", + "usb-redir", ); struct qemu_feature_flags { @@ -1196,6 +1207,26 @@ qemuCapsParseDeviceStr(const char *str, virBitmapPtr flags) qemuCapsSet(flags, QEMU_CAPS_CCID_EMULATED); if (strstr(str, "name \"ccid-card-passthru\"")) qemuCapsSet(flags, QEMU_CAPS_CCID_PASSTHRU); + + if (strstr(str, "name \"piix3-usb-uhci\"")) + qemuCapsSet(flags, QEMU_CAPS_PIIX3_USB_UHCI); + if (strstr(str, "name \"piix4-usb-uhci\"")) + qemuCapsSet(flags, QEMU_CAPS_PIIX4_USB_UHCI); + if (strstr(str, "name \"usb-ehci\"")) + qemuCapsSet(flags, QEMU_CAPS_USB_EHCI); + if (strstr(str, "name \"ich9-usb-ehci1\"")) + qemuCapsSet(flags, QEMU_CAPS_ICH9_USB_EHCI1); + if (strstr(str, "name \"ich9-usb-uhci1\"")) + qemuCapsSet(flags, QEMU_CAPS_ICH9_USB_UHCI1); + if (strstr(str, "name \"ich9-usb-uhci2\"")) + qemuCapsSet(flags, QEMU_CAPS_ICH9_USB_UHCI2); + if (strstr(str, "name \"ich9-usb-uhci3\"")) + qemuCapsSet(flags, QEMU_CAPS_ICH9_USB_UHCI3); + if (strstr(str, "name \"vt82c686b-usb-uhci\"")) + qemuCapsSet(flags, QEMU_CAPS_VT82C686B_USB_UHCI); + if (strstr(str, "name \"usb-redir\"")) + qemuCapsSet(flags, QEMU_CAPS_USB_REDIR); + /* Prefer -chardev spicevmc (detected earlier) over -device spicevmc */ if (!qemuCapsGet(flags, QEMU_CAPS_CHARDEV_SPICEVMC) && strstr(str, "name \"spicevmc\"")) diff --git a/src/qemu/qemu_capabilities.h b/src/qemu/qemu_capabilities.h index 13af0b9..7f94392 100644 --- a/src/qemu/qemu_capabilities.h +++ b/src/qemu/qemu_capabilities.h @@ -101,6 +101,16 @@ enum qemuCapsFlags { QEMU_CAPS_VIRTIO_BLK_EVENT_IDX = 63, /* virtio-blk-pci.event_idx */ QEMU_CAPS_VIRTIO_NET_EVENT_IDX = 64, /* virtio-net-pci.event_idx */ + QEMU_CAPS_PIIX3_USB_UHCI = 65, /* -device piix3-usb-uhci */ + QEMU_CAPS_PIIX4_USB_UHCI = 66, /* -device piix4-usb-uhci */ + QEMU_CAPS_USB_EHCI = 67, /* -device usb-ehci */ + QEMU_CAPS_ICH9_USB_EHCI1 = 68, /* -device ich9-usb-ehci1 */ + QEMU_CAPS_ICH9_USB_UHCI1 = 69, /* -device ich9-usb-uhci1 */ + QEMU_CAPS_ICH9_USB_UHCI2 = 70, /* -device ich9-usb-uhci2 */ + QEMU_CAPS_ICH9_USB_UHCI3 = 71, /* -device ich9-usb-uhci3 */ + QEMU_CAPS_VT82C686B_USB_UHCI = 72, /* -device vt82c686b-usb-uhci */ + QEMU_CAPS_USB_REDIR = 73, /* -device usb-redir */ + QEMU_CAPS_LAST, /* this must always be the last item */ }; diff --git a/tests/qemuhelptest.c b/tests/qemuhelptest.c index 102dd22..7002cdb 100644 --- a/tests/qemuhelptest.c +++ b/tests/qemuhelptest.c @@ -347,7 +347,9 @@ mymain(void) QEMU_CAPS_VGA_NONE, QEMU_CAPS_MIGRATE_QEMU_FD, QEMU_CAPS_DRIVE_AIO, - QEMU_CAPS_DEVICE_SPICEVMC); + QEMU_CAPS_DEVICE_SPICEVMC, + QEMU_CAPS_PIIX3_USB_UHCI, + QEMU_CAPS_PIIX4_USB_UHCI); DO_TEST("qemu-kvm-0.12.3", 12003, 1, 0, QEMU_CAPS_VNC_COLON, QEMU_CAPS_NO_REBOOT, @@ -431,7 +433,10 @@ mymain(void) QEMU_CAPS_MIGRATE_QEMU_FD, QEMU_CAPS_DRIVE_AIO, QEMU_CAPS_DEVICE_SPICEVMC, - QEMU_CAPS_PCI_MULTIFUNCTION); + QEMU_CAPS_PCI_MULTIFUNCTION, + QEMU_CAPS_PIIX3_USB_UHCI, + QEMU_CAPS_PIIX4_USB_UHCI, + QEMU_CAPS_VT82C686B_USB_UHCI); DO_TEST("qemu-kvm-0.12.1.2-rhel61", 12001, 1, 0, QEMU_CAPS_VNC_COLON, QEMU_CAPS_NO_REBOOT, @@ -476,7 +481,9 @@ mymain(void) QEMU_CAPS_CHARDEV_SPICEVMC, QEMU_CAPS_DEVICE_QXL_VGA, QEMU_CAPS_VIRTIO_TX_ALG, - QEMU_CAPS_VIRTIO_IOEVENTFD); + QEMU_CAPS_VIRTIO_IOEVENTFD, + QEMU_CAPS_PIIX3_USB_UHCI, + QEMU_CAPS_PIIX4_USB_UHCI); return ret == 0 ? EXIT_SUCCESS : EXIT_FAILURE; } -- 1.7.6 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list