
On Sun, Aug 03, 2008 at 01:50:44AM +0200, Guido G?nther wrote:
diff --git a/src/qemu_conf.c b/src/qemu_conf.c index 73039c5..331ff9d 100644 --- a/src/qemu_conf.c +++ b/src/qemu_conf.c @@ -883,6 +891,13 @@ int qemudBuildCommandLine(virConnectPtr conn, int idx = virDiskNameToIndex(disk->dst); const char *bus = virDomainDiskQEMUBusTypeToString(disk->bus);
+ if (disk->bus == VIR_DOMAIN_DISK_BUS_USB && + disk->device == VIR_DOMAIN_DISK_DEVICE_DISK) { + ADD_USBDISK(disk->src); + disk = disk->next; + continue; + }
Should do a 'qemudReportError' if the device type != DISK, so if someone mistakenly adds a floppy/cdrom it isn't silently ignored.
if (idx < 0) { qemudReportError(conn, NULL, NULL, VIR_ERR_INTERNAL_ERROR, _("unsupported disk type '%s'"), disk->dst); @@ -922,6 +937,13 @@ int qemudBuildCommandLine(virConnectPtr conn, char dev[NAME_MAX]; char file[PATH_MAX];
+ if (disk->bus == VIR_DOMAIN_DISK_BUS_USB && + disk->device == VIR_DOMAIN_DISK_DEVICE_DISK) { + ADD_USBDISK(disk->src); + disk = disk->next; + continue; + }
Same here.
+ if (STREQ(disk->dst, "hdc") && disk->device == VIR_DOMAIN_DISK_DEVICE_CDROM) { if (disk->src) { diff --git a/src/qemu_driver.c b/src/qemu_driver.c index 1aff53e..018046e 100644 --- a/src/qemu_driver.c +++ b/src/qemu_driver.c @@ -2978,6 +2978,44 @@ static int qemudDomainAttachCdromDevice(virDomainPtr dom, return 0; }
+static int qemudDomainAttachUsbMassstorageDevice(virDomainPtr dom, virDomainDeviceDefPtr dev) +{ + struct qemud_driver *driver = (struct qemud_driver *)dom->conn->privateData; + virDomainObjPtr vm = virDomainFindByUUID(driver->domains, dom->uuid); + int ret; + char *cmd, *reply; + + ret = asprintf(&cmd, "usb_add disk:%s", dev->data.disk->src); + + if (ret == -1) { + qemudReportError(dom->conn, dom, NULL, VIR_ERR_OPERATION_FAILED, + "%s", _("out of memory"));
Should just be qemudReportError(dom->conn, NULL, NULL, VIR_ERR_NO_MEMORY, NULL); As with the other patch we need to have an update to the RNG schema and at least one example test data file in tests/qemuxml2argvdata/ with XML and corresponding ARGV, plumbed into qemuxml2xmltest.c and qemuxml2argvtest.c With those changes I'd be happy to see this committed. Regards, Daniel -- |: Red Hat, Engineering, London -o- http://people.redhat.com/berrange/ :| |: http://libvirt.org -o- http://virt-manager.org -o- http://ovirt.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: GnuPG: 7D3B9505 -o- F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 :|