Revision 428c149b hw/usb-msd.c
b/hw/usb-msd.c | ||
---|---|---|
47 | 47 |
uint32_t residue; |
48 | 48 |
uint32_t tag; |
49 | 49 |
SCSIBus bus; |
50 |
DriveInfo *dinfo;
|
|
50 |
BlockConf conf;
|
|
51 | 51 |
SCSIDevice *scsi_dev; |
52 | 52 |
int result; |
53 | 53 |
/* For async completion. */ |
... | ... | |
523 | 523 |
{ |
524 | 524 |
MSDState *s = DO_UPCAST(MSDState, dev, dev); |
525 | 525 |
|
526 |
if (!s->dinfo || !s->dinfo->bdrv) {
|
|
526 |
if (!s->conf.dinfo || !s->conf.dinfo->bdrv) {
|
|
527 | 527 |
qemu_error("usb-msd: drive property not set\n"); |
528 | 528 |
return -1; |
529 | 529 |
} |
530 | 530 |
|
531 | 531 |
s->dev.speed = USB_SPEED_FULL; |
532 | 532 |
scsi_bus_new(&s->bus, &s->dev.qdev, 0, 1, usb_msd_command_complete); |
533 |
s->scsi_dev = scsi_bus_legacy_add_drive(&s->bus, s->dinfo, 0); |
|
533 |
s->scsi_dev = scsi_bus_legacy_add_drive(&s->bus, s->conf.dinfo, 0);
|
|
534 | 534 |
s->bus.qbus.allow_hotplug = 0; |
535 | 535 |
usb_msd_handle_reset(dev); |
536 | 536 |
|
537 |
if (bdrv_key_required(s->dinfo->bdrv)) { |
|
537 |
if (bdrv_key_required(s->conf.dinfo->bdrv)) {
|
|
538 | 538 |
if (s->dev.qdev.hotplugged) { |
539 |
monitor_read_bdrv_key_start(cur_mon, s->dinfo->bdrv, |
|
539 |
monitor_read_bdrv_key_start(cur_mon, s->conf.dinfo->bdrv,
|
|
540 | 540 |
usb_msd_password_cb, s); |
541 | 541 |
s->dev.auto_attach = 0; |
542 | 542 |
} else { |
... | ... | |
611 | 611 |
.usbdevice_name = "disk", |
612 | 612 |
.usbdevice_init = usb_msd_init, |
613 | 613 |
.qdev.props = (Property[]) { |
614 |
DEFINE_PROP_DRIVE("drive", MSDState, dinfo),
|
|
614 |
DEFINE_BLOCK_PROPERTIES(MSDState, conf),
|
|
615 | 615 |
DEFINE_PROP_END_OF_LIST(), |
616 | 616 |
}, |
617 | 617 |
}; |
Also available in: Unified diff