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 :|