mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-05 16:53:55 -06:00
Real SCSI device passthrough (v4), by Laurent Vivier.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3851 c046a42c-6fe2-441c-8c8c-71466251a162
This commit is contained in:
parent
1b0889958e
commit
985a03b0ce
8 changed files with 57 additions and 7 deletions
4
hw/esp.c
4
hw/esp.c
|
@ -615,7 +615,9 @@ void esp_scsi_attach(void *opaque, BlockDriverState *bd, int id)
|
|||
}
|
||||
DPRINTF("Attaching block device %d\n", id);
|
||||
/* Command queueing is not implemented. */
|
||||
s->scsi_dev[id] = scsi_disk_init(bd, 0, esp_command_complete, s);
|
||||
s->scsi_dev[id] = scsi_generic_init(bd, 0, esp_command_complete, s);
|
||||
if (s->scsi_dev[id] == NULL)
|
||||
s->scsi_dev[id] = scsi_disk_init(bd, 0, esp_command_complete, s);
|
||||
}
|
||||
|
||||
void *esp_init(target_phys_addr_t espaddr,
|
||||
|
|
|
@ -1236,6 +1236,8 @@ static uint8_t lsi_reg_readb(LSIState *s, int offset)
|
|||
return s->sdid;
|
||||
case 0x07: /* GPREG0 */
|
||||
return 0x7f;
|
||||
case 0x08: /* Revision ID */
|
||||
return 0x00;
|
||||
case 0xa: /* SSID */
|
||||
return s->ssid;
|
||||
case 0xb: /* SBCL */
|
||||
|
@ -1281,6 +1283,8 @@ static uint8_t lsi_reg_readb(LSIState *s, int offset)
|
|||
return s->ctest4;
|
||||
case 0x22: /* CTEST5 */
|
||||
return s->ctest5;
|
||||
case 0x23: /* CTEST6 */
|
||||
return 0;
|
||||
case 0x24: /* DBC[0:7] */
|
||||
return s->dbc & 0xff;
|
||||
case 0x25: /* DBC[8:15] */
|
||||
|
@ -1838,7 +1842,9 @@ void lsi_scsi_attach(void *opaque, BlockDriverState *bd, int id)
|
|||
s->scsi_dev[id]->destroy(s->scsi_dev[id]);
|
||||
}
|
||||
DPRINTF("Attaching block device %d\n", id);
|
||||
s->scsi_dev[id] = scsi_disk_init(bd, 1, lsi_command_complete, s);
|
||||
s->scsi_dev[id] = scsi_generic_init(bd, 1, lsi_command_complete, s);
|
||||
if (s->scsi_dev[id] == NULL)
|
||||
s->scsi_dev[id] = scsi_disk_init(bd, 1, lsi_command_complete, s);
|
||||
}
|
||||
|
||||
void *lsi_scsi_init(PCIBus *bus, int devfn)
|
||||
|
|
|
@ -26,6 +26,8 @@ struct SCSIDevice
|
|||
|
||||
SCSIDevice *scsi_disk_init(BlockDriverState *bdrv, int tcq,
|
||||
scsi_completionfn completion, void *opaque);
|
||||
SCSIDevice *scsi_generic_init(BlockDriverState *bdrv, int tcq,
|
||||
scsi_completionfn completion, void *opaque);
|
||||
|
||||
/* cdrom.c */
|
||||
int cdrom_read_toc(int nb_sectors, uint8_t *buf, int msf, int start_track);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue