Added support for up to four SCSI controllers, closes #343.

This commit is contained in:
OBattler
2021-07-22 20:13:44 +02:00
parent f31e8b27d5
commit 729b6d5069
25 changed files with 665 additions and 313 deletions

View File

@@ -27,7 +27,7 @@
#include <86box/scsi_device.h>
scsi_device_t scsi_devices[SCSI_ID_MAX];
scsi_device_t scsi_devices[SCSI_BUS_MAX][SCSI_ID_MAX];
uint8_t scsi_null_device_sense[18] = { 0x70,0,SENSE_ILLEGAL_REQUEST,0,0,0,0,0,0,0,0,0,ASC_INV_LUN,0,0,0,0,0 };
@@ -176,13 +176,15 @@ scsi_device_identify(scsi_device_t *dev, uint8_t lun)
void
scsi_device_close_all(void)
{
int i;
int i, j;
scsi_device_t *dev;
for (i = 0; i < SCSI_ID_MAX; i++) {
dev = &(scsi_devices[i]);
if (dev->command_stop && dev->sc)
dev->command_stop(dev->sc);
for (i = 0; i < SCSI_BUS_MAX; i++) {
for (j = 0; j < SCSI_ID_MAX; j++) {
dev = &(scsi_devices[i][j]);
if (dev->command_stop && dev->sc)
dev->command_stop(dev->sc);
}
}
}
@@ -190,13 +192,15 @@ scsi_device_close_all(void)
void
scsi_device_init(void)
{
int i;
int i, j;
scsi_device_t *dev;
for (i = 0; i < SCSI_ID_MAX; i++) {
dev = &(scsi_devices[i]);
for (i = 0; i < SCSI_BUS_MAX; i++) {
for (j = 0; j < SCSI_ID_MAX; j++) {
dev = &(scsi_devices[i][j]);
memset(dev, 0, sizeof(scsi_device_t));
dev->type = SCSI_NONE;
memset(dev, 0, sizeof(scsi_device_t));
dev->type = SCSI_NONE;
}
}
}