On Sun, Aug 21, 2011 at 10:01:14PM +0300, Marc-André Lureau wrote: > diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c > index dbfc7d9..4168504 100644 > --- a/src/qemu/qemu_command.c > +++ b/src/qemu/qemu_command.c > @@ -83,6 +83,24 @@ VIR_ENUM_IMPL(qemuVideo, VIR_DOMAIN_VIDEO_TYPE_LAST, > "", /* don't support vbox */ > "qxl"); > > +VIR_ENUM_DECL(qemuControllerModel) > + > +VIR_ENUM_IMPL(qemuControllerModel, VIR_DOMAIN_CONTROLLER_MODEL_LAST, > + "", /* auto */ > + "", /* buslogic don't support */ > + "", /* lsilogic don't support */ > + "", /* lsisas don't support */ > + "", /* vmpvscsi don't support */ > + "piix3-usb-uhci", > + "piix4-usb-uhci", > + "usb-ehci", > + "ich9-usb-ehci1", > + "ich9-usb-uhci1", > + "ich9-usb-uhci2", > + "ich9-usb-uhci3", > + "vt82c686b-usb-uhci"); If we separate out the model enums per controller type, then we can avoid the nasty hacks of "" in this declaration. > +static int > +qemuBuildUSBControllerDevStr(virDomainControllerDefPtr def, > + virBitmapPtr qemuCaps, > + virBuffer *buf) > +{ > + const char *smodel; > + int model, caps; > + > + model = def->model; > + if (model == -1 || model == VIR_DOMAIN_CONTROLLER_MODEL_AUTO) > + model = VIR_DOMAIN_CONTROLLER_MODEL_PIIX3_UHCI; > + > + smodel = qemuControllerModelTypeToString(model); > + caps = qemuControllerModelToCaps(model); > + > + if (caps == -1 || !qemuCapsGet(qemuCaps, caps)) { > + qemuReportError(VIR_ERR_CONFIG_UNSUPPORTED, > + _("%s not supported in this QEMU binary"), smodel); > + return -1; > + } > + > + virBufferAsprintf(buf, "%s,id=usb%d", smodel, def->idx); > + return 0; > +} > + Daniel -- |: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :| |: http://libvirt.org -o- http://virt-manager.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :| -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list