diff options
Diffstat (limited to 'hw')
-rw-r--r-- | hw/usb-msd.c | 10 | ||||
-rw-r--r-- | hw/usb.h | 3 |
2 files changed, 10 insertions, 3 deletions
diff --git a/hw/usb-msd.c b/hw/usb-msd.c index 0c8d9cca83..41c92c3f1d 100644 --- a/hw/usb-msd.c +++ b/hw/usb-msd.c @@ -514,7 +514,7 @@ static void usb_msd_handle_destroy(USBDevice *dev) qemu_free(s); } -USBDevice *usb_msd_init(const char *filename, BlockDriverState **pbs) +USBDevice *usb_msd_init(const char *filename) { MSDState *s; BlockDriverState *bdrv; @@ -554,7 +554,6 @@ USBDevice *usb_msd_init(const char *filename, BlockDriverState **pbs) if (bdrv_open2(bdrv, filename, 0, drv) < 0) goto fail; s->bs = bdrv; - *pbs = bdrv; s->dev.speed = USB_SPEED_FULL; s->dev.handle_packet = usb_generic_handle_packet; @@ -574,3 +573,10 @@ USBDevice *usb_msd_init(const char *filename, BlockDriverState **pbs) qemu_free(s); return NULL; } + +BlockDriverState *usb_msd_get_bdrv(USBDevice *dev) +{ + MSDState *s = (MSDState *)dev; + + return s->bs; +} @@ -253,7 +253,8 @@ USBDevice *usb_keyboard_init(void); void usb_hid_datain_cb(USBDevice *dev, void *opaque, void (*datain)(void *)); /* usb-msd.c */ -USBDevice *usb_msd_init(const char *filename, BlockDriverState **pbs); +USBDevice *usb_msd_init(const char *filename); +BlockDriverState *usb_msd_get_bdrv(USBDevice *dev); /* usb-net.c */ USBDevice *usb_net_init(NICInfo *nd); |