Revision fa66b909
b/hw/esp.c | ||
---|---|---|
679 | 679 |
qdev_init_gpio_in(&dev->qdev, parent_esp_reset, 1); |
680 | 680 |
|
681 | 681 |
scsi_bus_new(&s->bus, &dev->qdev, 0, ESP_MAX_DEVS, esp_command_complete); |
682 |
scsi_bus_legacy_handle_cmdline(&s->bus); |
|
683 |
return 0; |
|
682 |
return scsi_bus_legacy_handle_cmdline(&s->bus); |
|
684 | 683 |
} |
685 | 684 |
|
686 | 685 |
static SysBusDeviceInfo esp_info = { |
b/hw/lsi53c895a.c | ||
---|---|---|
2176 | 2176 |
|
2177 | 2177 |
scsi_bus_new(&s->bus, &dev->qdev, 1, LSI_MAX_DEVS, lsi_command_complete); |
2178 | 2178 |
if (!dev->qdev.hotplugged) { |
2179 |
scsi_bus_legacy_handle_cmdline(&s->bus); |
|
2179 |
return scsi_bus_legacy_handle_cmdline(&s->bus);
|
|
2180 | 2180 |
} |
2181 | 2181 |
return 0; |
2182 | 2182 |
} |
b/hw/pci-hotplug.c | ||
---|---|---|
90 | 90 |
*/ |
91 | 91 |
dinfo->unit = qemu_opt_get_number(dinfo->opts, "unit", -1); |
92 | 92 |
scsidev = scsi_bus_legacy_add_drive(scsibus, dinfo, dinfo->unit); |
93 |
if (!scsidev) { |
|
94 |
return -1; |
|
95 |
} |
|
93 | 96 |
dinfo->unit = scsidev->id; |
94 | 97 |
|
95 | 98 |
if (printinfo) |
b/hw/scsi-bus.c | ||
---|---|---|
83 | 83 |
} |
84 | 84 |
|
85 | 85 |
/* handle legacy '-drive if=scsi,...' cmd line args */ |
86 |
/* FIXME callers should check for failure, but don't */ |
|
87 | 86 |
SCSIDevice *scsi_bus_legacy_add_drive(SCSIBus *bus, DriveInfo *dinfo, int unit) |
88 | 87 |
{ |
89 | 88 |
const char *driver; |
... | ... | |
98 | 97 |
return DO_UPCAST(SCSIDevice, qdev, dev); |
99 | 98 |
} |
100 | 99 |
|
101 |
void scsi_bus_legacy_handle_cmdline(SCSIBus *bus)
|
|
100 |
int scsi_bus_legacy_handle_cmdline(SCSIBus *bus)
|
|
102 | 101 |
{ |
103 | 102 |
DriveInfo *dinfo; |
104 |
int unit; |
|
103 |
int res = 0, unit;
|
|
105 | 104 |
|
106 | 105 |
for (unit = 0; unit < MAX_SCSI_DEVS; unit++) { |
107 | 106 |
dinfo = drive_get(IF_SCSI, bus->busnr, unit); |
108 | 107 |
if (dinfo == NULL) { |
109 | 108 |
continue; |
110 | 109 |
} |
111 |
scsi_bus_legacy_add_drive(bus, dinfo, unit); |
|
110 |
if (!scsi_bus_legacy_add_drive(bus, dinfo, unit)) { |
|
111 |
res = -1; |
|
112 |
break; |
|
113 |
} |
|
112 | 114 |
} |
115 |
return res; |
|
113 | 116 |
} |
114 | 117 |
|
115 | 118 |
void scsi_dev_clear_sense(SCSIDevice *dev) |
b/hw/scsi.h | ||
---|---|---|
98 | 98 |
} |
99 | 99 |
|
100 | 100 |
SCSIDevice *scsi_bus_legacy_add_drive(SCSIBus *bus, DriveInfo *dinfo, int unit); |
101 |
void scsi_bus_legacy_handle_cmdline(SCSIBus *bus);
|
|
101 |
int scsi_bus_legacy_handle_cmdline(SCSIBus *bus);
|
|
102 | 102 |
|
103 | 103 |
void scsi_dev_clear_sense(SCSIDevice *dev); |
104 | 104 |
void scsi_dev_set_sense(SCSIDevice *dev, uint8_t key); |
b/hw/usb-msd.c | ||
---|---|---|
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 | 533 |
s->scsi_dev = scsi_bus_legacy_add_drive(&s->bus, s->conf.dinfo, 0); |
534 |
if (!s->scsi_dev) { |
|
535 |
return -1; |
|
536 |
} |
|
534 | 537 |
s->bus.qbus.allow_hotplug = 0; |
535 | 538 |
usb_msd_handle_reset(dev); |
536 | 539 |
|
Also available in: Unified diff