The great CD-ROM clean-up and rewrite, fixes #5134.
This commit is contained in:
@@ -925,7 +925,7 @@ wd1007vse1_init(UNUSED(const device_t *info))
|
||||
|
||||
c = 0;
|
||||
for (uint8_t d = 0; d < HDD_NUM; d++) {
|
||||
if ((hdd[d].bus == HDD_BUS_ESDI) && (hdd[d].esdi_channel < ESDI_NUM)) {
|
||||
if ((hdd[d].bus_type == HDD_BUS_ESDI) && (hdd[d].esdi_channel < ESDI_NUM)) {
|
||||
loadhd(esdi, hdd[d].esdi_channel, d, hdd[d].fn);
|
||||
|
||||
if (++c >= ESDI_NUM)
|
||||
|
||||
@@ -1265,7 +1265,7 @@ esdi_init(UNUSED(const device_t *info))
|
||||
dev->drives[0].present = dev->drives[1].present = 0;
|
||||
|
||||
for (c = 0, i = 0; i < HDD_NUM; i++) {
|
||||
if ((hdd[i].bus == HDD_BUS_ESDI) && (hdd[i].esdi_channel < ESDI_NUM)) {
|
||||
if ((hdd[i].bus_type == HDD_BUS_ESDI) && (hdd[i].esdi_channel < ESDI_NUM)) {
|
||||
/* This is an ESDI drive. */
|
||||
drive = &dev->drives[hdd[i].esdi_channel];
|
||||
|
||||
|
||||
@@ -486,7 +486,7 @@ ide_get_max(const ide_t *ide, const int type)
|
||||
int ret;
|
||||
|
||||
if (ide->type == IDE_ATAPI)
|
||||
ret = ide->get_max(!IDE_ATAPI_IS_EARLY && ata_4, type);
|
||||
ret = ide->get_max(ide, !IDE_ATAPI_IS_EARLY && ata_4, type);
|
||||
else
|
||||
ret = max[ata_4][type];
|
||||
|
||||
@@ -501,7 +501,7 @@ ide_get_timings(const ide_t *ide, const int type)
|
||||
int ret;
|
||||
|
||||
if (ide->type == IDE_ATAPI)
|
||||
ret = ide->get_timings(!IDE_ATAPI_IS_EARLY && ata_4, type);
|
||||
ret = ide->get_timings(ide, !IDE_ATAPI_IS_EARLY && ata_4, type);
|
||||
else
|
||||
ret = timings[ata_4][type];
|
||||
|
||||
@@ -643,7 +643,7 @@ ide_identify(ide_t *ide)
|
||||
memset(ide->buffer, 0, 512);
|
||||
|
||||
if (ide->type == IDE_ATAPI)
|
||||
ide->identify(ide, !IDE_ATAPI_IS_EARLY && !ide_boards[ide->board]->force_ata3 && (bm != NULL));
|
||||
ide->identify((const ide_t *) ide, !IDE_ATAPI_IS_EARLY && !ide_boards[ide->board]->force_ata3 && (bm != NULL));
|
||||
else if (ide->type == IDE_HDD)
|
||||
ide_hd_identify(ide);
|
||||
else {
|
||||
@@ -973,7 +973,7 @@ ide_atapi_attach(ide_t *ide)
|
||||
ide->type = IDE_ATAPI;
|
||||
ide_allocate_buffer(ide);
|
||||
ide_set_signature(ide);
|
||||
ide->mdma_mode = (1 << ide->get_max(!IDE_ATAPI_IS_EARLY &&
|
||||
ide->mdma_mode = (1 << ide->get_max((const ide_t *) ide, !IDE_ATAPI_IS_EARLY &&
|
||||
!ide_boards[ide->board]->force_ata3 && (bm != NULL), TYPE_PIO));
|
||||
ide->tf->error = 1;
|
||||
ide->cfg_spt = ide->cfg_hpc = 0;
|
||||
@@ -1655,7 +1655,7 @@ ide_writeb(uint16_t addr, uint8_t val, void *priv)
|
||||
ide->sc->callback = 200.0 * IDE_TIME;
|
||||
|
||||
if (ide->type == IDE_HDD) {
|
||||
ui_sb_update_icon(SB_HDD | hdd[ide->hdd_num].bus, 1);
|
||||
ui_sb_update_icon(SB_HDD | hdd[ide->hdd_num].bus_type, 1);
|
||||
uint32_t sec_count;
|
||||
double wait_time;
|
||||
if ((val == WIN_READ_DMA) || (val == WIN_READ_DMA_ALT)) {
|
||||
@@ -1697,7 +1697,7 @@ ide_writeb(uint16_t addr, uint8_t val, void *priv)
|
||||
ide->blockcount = 0;
|
||||
/* Turn on the activity indicator *here* so that it gets turned on
|
||||
less times. */
|
||||
ui_sb_update_icon(SB_HDD | hdd[ide->hdd_num].bus, 1);
|
||||
ui_sb_update_icon(SB_HDD | hdd[ide->hdd_num].bus_type, 1);
|
||||
fallthrough;
|
||||
|
||||
case WIN_WRITE:
|
||||
@@ -1885,7 +1885,7 @@ ide_read_data(ide_t *ide)
|
||||
ide_set_callback(ide, seek_us + xfer_us);
|
||||
}
|
||||
} else
|
||||
ui_sb_update_icon(SB_HDD | hdd[ide->hdd_num].bus, 0);
|
||||
ui_sb_update_icon(SB_HDD | hdd[ide->hdd_num].bus_type, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -2238,7 +2238,7 @@ ide_callback(void *priv)
|
||||
|
||||
ide_irq_raise(ide);
|
||||
|
||||
ui_sb_update_icon(SB_HDD | hdd[ide->hdd_num].bus, 1);
|
||||
ui_sb_update_icon(SB_HDD | hdd[ide->hdd_num].bus_type, 1);
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -2277,7 +2277,7 @@ ide_callback(void *priv)
|
||||
ide->tf->atastat = DRDY_STAT | DSC_STAT;
|
||||
|
||||
ide_irq_raise(ide);
|
||||
ui_sb_update_icon(SB_HDD | hdd[ide->hdd_num].bus, 0);
|
||||
ui_sb_update_icon(SB_HDD | hdd[ide->hdd_num].bus_type, 0);
|
||||
} else {
|
||||
/* Bus master DMAS error, abort the command. */
|
||||
ide_log("IDE %i: DMA read aborted (failed)\n", ide->channel);
|
||||
@@ -2346,10 +2346,10 @@ ide_callback(void *priv)
|
||||
ide->tf->atastat = DRQ_STAT | DRDY_STAT | DSC_STAT;
|
||||
ide->tf->pos = 0;
|
||||
ide_next_sector(ide);
|
||||
ui_sb_update_icon(SB_HDD | hdd[ide->hdd_num].bus, 1);
|
||||
ui_sb_update_icon(SB_HDD | hdd[ide->hdd_num].bus_type, 1);
|
||||
} else {
|
||||
ide->tf->atastat = DRDY_STAT | DSC_STAT;
|
||||
ui_sb_update_icon(SB_HDD | hdd[ide->hdd_num].bus, 0);
|
||||
ui_sb_update_icon(SB_HDD | hdd[ide->hdd_num].bus_type, 0);
|
||||
}
|
||||
if (ret < 0)
|
||||
err = UNC_ERR;
|
||||
@@ -2391,7 +2391,7 @@ ide_callback(void *priv)
|
||||
err = UNC_ERR;
|
||||
|
||||
ide_irq_raise(ide);
|
||||
ui_sb_update_icon(SB_HDD | hdd[ide->hdd_num].bus, 0);
|
||||
ui_sb_update_icon(SB_HDD | hdd[ide->hdd_num].bus_type, 0);
|
||||
} else {
|
||||
/* Bus master DMA error, abort the command. */
|
||||
ide_log("IDE %i: DMA read aborted (failed)\n", ide->channel);
|
||||
@@ -2429,7 +2429,7 @@ ide_callback(void *priv)
|
||||
ide_next_sector(ide);
|
||||
} else {
|
||||
ide->tf->atastat = DRDY_STAT | DSC_STAT;
|
||||
ui_sb_update_icon(SB_HDD | hdd[ide->hdd_num].bus, 0);
|
||||
ui_sb_update_icon(SB_HDD | hdd[ide->hdd_num].bus_type, 0);
|
||||
}
|
||||
if (ret < 0)
|
||||
err = UNC_ERR;
|
||||
@@ -2446,7 +2446,7 @@ ide_callback(void *priv)
|
||||
ide->tf->pos = 0;
|
||||
ide->tf->atastat = DRDY_STAT | DSC_STAT;
|
||||
ide_irq_raise(ide);
|
||||
ui_sb_update_icon(SB_HDD | hdd[ide->hdd_num].bus, 1);
|
||||
ui_sb_update_icon(SB_HDD | hdd[ide->hdd_num].bus_type, 1);
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -2463,7 +2463,7 @@ ide_callback(void *priv)
|
||||
err = UNC_ERR;
|
||||
ide_irq_raise(ide);
|
||||
|
||||
ui_sb_update_icon(SB_HDD | hdd[ide->hdd_num].bus, 1);
|
||||
ui_sb_update_icon(SB_HDD | hdd[ide->hdd_num].bus_type, 1);
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -2759,7 +2759,7 @@ ide_board_setup(const int board)
|
||||
|
||||
c = 0;
|
||||
for (d = 0; d < HDD_NUM; d++) {
|
||||
const int is_ide = (hdd[d].bus == HDD_BUS_IDE);
|
||||
const int is_ide = (hdd[d].bus_type == HDD_BUS_IDE);
|
||||
const int ch = hdd[d].ide_channel;
|
||||
|
||||
const int valid_ch = ((ch >= min_ch) && (ch <= max_ch));
|
||||
|
||||
@@ -475,19 +475,22 @@ sff_reset(void *priv)
|
||||
#endif
|
||||
|
||||
for (uint8_t i = 0; i < HDD_NUM; i++) {
|
||||
if ((hdd[i].bus == HDD_BUS_ATAPI) && (hdd[i].ide_channel < 4) && hdd[i].priv)
|
||||
if ((hdd[i].bus_type == HDD_BUS_ATAPI) && (hdd[i].ide_channel < 4) && hdd[i].priv)
|
||||
scsi_disk_reset((scsi_common_t *) hdd[i].priv);
|
||||
}
|
||||
for (uint8_t i = 0; i < CDROM_NUM; i++) {
|
||||
if ((cdrom[i].bus_type == CDROM_BUS_ATAPI) && (cdrom[i].ide_channel < 4) && cdrom[i].priv)
|
||||
if ((cdrom[i].bus_type == CDROM_BUS_ATAPI) && (cdrom[i].ide_channel < 4) &&
|
||||
cdrom[i].priv)
|
||||
scsi_cdrom_reset((scsi_common_t *) cdrom[i].priv);
|
||||
}
|
||||
for (uint8_t i = 0; i < ZIP_NUM; i++) {
|
||||
if ((zip_drives[i].bus_type == ZIP_BUS_ATAPI) && (zip_drives[i].ide_channel < 4) && zip_drives[i].priv)
|
||||
if ((zip_drives[i].bus_type == ZIP_BUS_ATAPI) && (zip_drives[i].ide_channel < 4) &&
|
||||
zip_drives[i].priv)
|
||||
zip_reset((scsi_common_t *) zip_drives[i].priv);
|
||||
}
|
||||
for (uint8_t i = 0; i < MO_NUM; i++) {
|
||||
if ((mo_drives[i].bus_type == MO_BUS_ATAPI) && (mo_drives[i].ide_channel < 4) && mo_drives[i].priv)
|
||||
if ((mo_drives[i].bus_type == MO_BUS_ATAPI) && (mo_drives[i].ide_channel < 4) &&
|
||||
mo_drives[i].priv)
|
||||
mo_reset((scsi_common_t *) mo_drives[i].priv);
|
||||
}
|
||||
|
||||
|
||||
@@ -749,7 +749,7 @@ mfm_init(UNUSED(const device_t *info))
|
||||
|
||||
c = 0;
|
||||
for (uint8_t d = 0; d < HDD_NUM; d++) {
|
||||
if ((hdd[d].bus == HDD_BUS_MFM) && (hdd[d].mfm_channel < MFM_NUM)) {
|
||||
if ((hdd[d].bus_type == HDD_BUS_MFM) && (hdd[d].mfm_channel < MFM_NUM)) {
|
||||
loadhd(mfm, hdd[d].mfm_channel, d, hdd[d].fn);
|
||||
|
||||
st506_at_log("WD1003(%d): (%s) geometry %d/%d/%d\n", c, hdd[d].fn,
|
||||
|
||||
@@ -1799,7 +1799,7 @@ st506_init(const device_t *info)
|
||||
st506_xt_log("ST506: looking for disks...\n");
|
||||
#endif
|
||||
for (c = 0, i = 0; i < HDD_NUM; i++) {
|
||||
if ((hdd[i].bus == HDD_BUS_MFM) && (hdd[i].mfm_channel < MFM_NUM)) {
|
||||
if ((hdd[i].bus_type == HDD_BUS_MFM) && (hdd[i].mfm_channel < MFM_NUM)) {
|
||||
st506_xt_log("ST506: disk '%s' on channel %i\n",
|
||||
hdd[i].fn, hdd[i].mfm_channel);
|
||||
loadhd(dev, hdd[i].mfm_channel, i, hdd[i].fn);
|
||||
|
||||
@@ -1038,7 +1038,7 @@ xta_init(const device_t *info)
|
||||
/* Load any disks for this device class. */
|
||||
c = 0;
|
||||
for (uint8_t i = 0; i < HDD_NUM; i++) {
|
||||
if ((hdd[i].bus == HDD_BUS_XTA) && (hdd[i].xta_channel < max)) {
|
||||
if ((hdd[i].bus_type == HDD_BUS_XTA) && (hdd[i].xta_channel < max)) {
|
||||
drive = &dev->drives[hdd[i].xta_channel];
|
||||
|
||||
if (!hdd_image_load(i)) {
|
||||
|
||||
@@ -123,7 +123,7 @@ hdd_bus_to_string(int bus, UNUSED(int cdrom))
|
||||
int
|
||||
hdd_is_valid(int c)
|
||||
{
|
||||
if (hdd[c].bus == HDD_BUS_DISABLED)
|
||||
if (hdd[c].bus_type == HDD_BUS_DISABLED)
|
||||
return 0;
|
||||
|
||||
if (strlen(hdd[c].fn) == 0)
|
||||
|
||||
1551
src/disk/mo.c
1551
src/disk/mo.c
File diff suppressed because it is too large
Load Diff
1758
src/disk/zip.c
1758
src/disk/zip.c
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user