package org.ovirt.engine.core.common.businessentities; /** * https://libvirt.org/formatdomain.html#elementsControllers * * <p> * ohci ~ usb1.1 <br> * uhci ~ usb1.x <br> * ehci ~ usb2.0 <br> * xhci ~ usb3.1 <br> * </p> */ public enum UsbControllerModel { /** * Default, used if no controllers if specified. * https://www.redhat.com/archives/libvir-list/2011-August/msg00816.html */ PIIX3_UHCI("piix3-uhci"), PIIX4_UHCI("piix4-uhci"), EHCI("ehci"), ICH9_EHCI1("ich9-ehci1"), ICH9_UHCI1("ich9-uhci1"), ICH9_UHCI2("ich9-uhci2"), ICH9_UHCI3("ich9-uhci3"), VT82C686B_UHCI("vt82c686b-uhci"), PCI_OHCI("pci-ohci"), NEC_XHCI("nec-xhci"), /** * xen pvusb with qemu backend, version 1.1 */ QUSB1("qusb1"), /** * xen pvusb with qemu backend, version 2.0 */ QUSB2("qusb2"), NONE("none"); public final String libvirtName; UsbControllerModel(String libvirtName) { this.libvirtName = libvirtName; } public static UsbControllerModel fromLibvirtName(String libvirtName) { for (UsbControllerModel usbControllerModel : values()) { if (usbControllerModel.libvirtName.equals(libvirtName)) { return usbControllerModel; } } throw new RuntimeException("Unknown libvirt name '" + libvirtName + "'"); } }