]> xenbits.xensource.com Git - people/vhanquez/xen.git/commitdiff
ioemu: Fix usbdevice parameter to encode vbd type.
authorKeir Fraser <keir.fraser@citrix.com>
Fri, 27 Jun 2008 16:00:59 +0000 (17:00 +0100)
committerKeir Fraser <keir.fraser@citrix.com>
Fri, 27 Jun 2008 16:00:59 +0000 (17:00 +0100)
   usbdevice = "disk:<filename>"
expect a raw device (as this probably is the most usual case) and
   usbdevice = "disk-qcow:<filename>"
expect a COW image (autodetected, probably qcow2).

Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
xen-unstable changeset:   17877:52592af0204a55abd0898b1fbe390a55036079e2
xen-unstable date:        Wed Jun 18 11:55:34 2008 +0100

tools/ioemu/hw/usb-msd.c
tools/ioemu/hw/usb.h
tools/ioemu/vl.c

index 4530a1ceaaf8e236ac03d44a9bc350a6fa57309a..6f22a579692f7aca4c70fb6fd2b660953908f0a0 100644 (file)
@@ -510,7 +510,7 @@ static void usb_msd_handle_destroy(USBDevice *dev)
     qemu_free(s);
 }
 
-USBDevice *usb_msd_init(const char *filename)
+USBDevice *usb_msd_init(const char *filename, BlockDriver *drv)
 {
     MSDState *s;
     BlockDriverState *bdrv;
@@ -520,7 +520,7 @@ USBDevice *usb_msd_init(const char *filename)
         return NULL;
 
     bdrv = bdrv_new("usb");
-    if (bdrv_open(bdrv, filename, 0) < 0)
+    if (bdrv_open2(bdrv, filename, 0, drv) < 0)
         goto fail;
     s->bs = bdrv;
 
index 48967516ec37e712f5e18f3c1fdf373410ca4a4b..f866e5fa800975ca916e580108b1b756eda15970 100644 (file)
@@ -217,7 +217,7 @@ USBDevice *usb_mouse_init(void);
 USBDevice *usb_tablet_init(void);
 
 /* usb-msd.c */
-USBDevice *usb_msd_init(const char *filename);
+USBDevice *usb_msd_init(const char *filename, BlockDriver *drv);
 
 /* usb.c */
 void generic_usb_save(QEMUFile* f, void *opaque);
index 94723349b69aa298516d6a52a986b21cd81e77aa..1a617a783ffab2821f34df24db5416b60537fab5 100644 (file)
@@ -4231,7 +4231,9 @@ static int usb_device_add(const char *devname)
     } else if (!strcmp(devname, "tablet")) {
        dev = usb_tablet_init();
     } else if (strstart(devname, "disk:", &p)) {
-        dev = usb_msd_init(p);
+        dev = usb_msd_init(p, &bdrv_raw);
+    } else if (strstart(devname, "disk-qcow:", &p)) {
+        dev = usb_msd_init(p, 0);
     } else {
         return -1;
     }