mirror of
https://github.com/86Box/86Box.git
synced 2026-02-22 09:35:32 -07:00
Merge pull request #3374 from jriwanek-forks/sonarlint
Yet more sonarlint fixes
This commit is contained in:
@@ -439,7 +439,7 @@ pc_init(int argc, char *argv[])
|
||||
}
|
||||
if (!strncmp(exe_path, "/private/var/folders/", 21)) {
|
||||
ui_msgbox_header(MBX_FATAL, L"App Translocation", EMU_NAME_W L" cannot determine the emulated machine's location due to a macOS security feature. Please move the " EMU_NAME_W L" app to another folder (not /Applications), or make a copy of it and open that copy instead.");
|
||||
return (0);
|
||||
return 0;
|
||||
}
|
||||
#elif !defined(_WIN32)
|
||||
/* Grab the actual path if we are an AppImage. */
|
||||
@@ -874,7 +874,6 @@ pc_init_modules(void)
|
||||
if (machine == -1) {
|
||||
fatal("No available machines\n");
|
||||
exit(-1);
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -897,7 +896,6 @@ pc_init_modules(void)
|
||||
if (gfxcard[0] == -1) {
|
||||
fatal("No available video cards\n");
|
||||
exit(-1);
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -36,7 +36,8 @@
|
||||
* each 8x256 lookup table is 16k. */
|
||||
#ifndef CRC64SPEED_DUAL
|
||||
static uint64_t crc64_table[8][256] = {{0}};
|
||||
static void *crc64_table_little = NULL, *crc64_table_big = NULL;
|
||||
static void *crc64_table_little = NULL;
|
||||
static void *crc64_table_big = NULL;
|
||||
static const bool dual = false;
|
||||
#else
|
||||
static uint64_t crc64_table_little[8][256] = {{0}};
|
||||
|
||||
@@ -174,12 +174,12 @@ hdc_has_config(int hdc)
|
||||
const device_t *dev = hdc_get_device(hdc);
|
||||
|
||||
if (dev == NULL)
|
||||
return (0);
|
||||
return 0;
|
||||
|
||||
if (!device_has_config(dev))
|
||||
return (0);
|
||||
return 0;
|
||||
|
||||
return (1);
|
||||
return 1;
|
||||
}
|
||||
|
||||
int
|
||||
|
||||
@@ -172,16 +172,19 @@ get_sector(esdi_t *esdi, off64_t *addr)
|
||||
drive_t *drive = &esdi->drives[esdi->drive_sel];
|
||||
int heads = drive->cfg_hpc;
|
||||
int sectors = drive->cfg_spt;
|
||||
int c, h, s, sector;
|
||||
int c;
|
||||
int h;
|
||||
int s;
|
||||
int sector;
|
||||
|
||||
if (esdi->head > heads) {
|
||||
esdi_at_log("esdi_get_sector: past end of configured heads\n");
|
||||
return (1);
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (esdi->sector >= sectors + 1) {
|
||||
esdi_at_log("esdi_get_sector: past end of configured sectors\n");
|
||||
return (1);
|
||||
return 1;
|
||||
}
|
||||
|
||||
sector = esdi->sector ? esdi->sector : 1;
|
||||
@@ -203,7 +206,7 @@ get_sector(esdi_t *esdi, off64_t *addr)
|
||||
*addr = ((((off64_t) c * drive->real_hpc) + h) * drive->real_spt) + s;
|
||||
}
|
||||
|
||||
return (0);
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* Move to the next sector using CHS addressing. */
|
||||
@@ -253,7 +256,8 @@ static void
|
||||
esdi_write(uint16_t port, uint8_t val, void *priv)
|
||||
{
|
||||
esdi_t *esdi = (esdi_t *) priv;
|
||||
double seek_time, xfer_time;
|
||||
double seek_time;
|
||||
double xfer_time;
|
||||
off64_t addr;
|
||||
|
||||
esdi_at_log("WD1007 write(%04x, %02x)\n", port, val);
|
||||
@@ -452,7 +456,7 @@ esdi_readw(uint16_t port, void *priv)
|
||||
}
|
||||
}
|
||||
|
||||
return (temp);
|
||||
return temp;
|
||||
}
|
||||
|
||||
static uint8_t
|
||||
@@ -498,7 +502,7 @@ esdi_read(uint16_t port, void *priv)
|
||||
|
||||
esdi_at_log("WD1007 read(%04x) = %02x\n", port, temp);
|
||||
|
||||
return (temp);
|
||||
return temp;
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -820,13 +824,13 @@ esdi_rom_write(uint32_t addr, uint8_t val, void *p)
|
||||
static void *
|
||||
wd1007vse1_init(const device_t *info)
|
||||
{
|
||||
int c, d;
|
||||
int c;
|
||||
|
||||
esdi_t *esdi = malloc(sizeof(esdi_t));
|
||||
memset(esdi, 0x00, sizeof(esdi_t));
|
||||
|
||||
c = 0;
|
||||
for (d = 0; d < HDD_NUM; d++) {
|
||||
for (uint8_t d = 0; d < HDD_NUM; d++) {
|
||||
if ((hdd[d].bus == HDD_BUS_ESDI) && (hdd[d].esdi_channel < ESDI_NUM)) {
|
||||
loadhd(esdi, hdd[d].esdi_channel, d, hdd[d].fn);
|
||||
|
||||
@@ -858,7 +862,7 @@ wd1007vse1_init(const device_t *info)
|
||||
|
||||
ui_sb_update_icon(SB_HDD | HDD_BUS_ESDI, 0);
|
||||
|
||||
return (esdi);
|
||||
return esdi;
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -866,9 +870,8 @@ wd1007vse1_close(void *priv)
|
||||
{
|
||||
esdi_t *esdi = (esdi_t *) priv;
|
||||
drive_t *drive;
|
||||
int d;
|
||||
|
||||
for (d = 0; d < 2; d++) {
|
||||
for (uint8_t d = 0; d < 2; d++) {
|
||||
drive = &esdi->drives[d];
|
||||
|
||||
hdd_image_close(drive->hdd_num);
|
||||
|
||||
@@ -868,7 +868,7 @@ esdi_read(uint16_t port, void *priv)
|
||||
break;
|
||||
}
|
||||
|
||||
return (ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -987,7 +987,7 @@ esdi_readw(uint16_t port, void *priv)
|
||||
switch (port & 7) {
|
||||
case 0: /*Status Interface Register*/
|
||||
if (dev->status_pos >= dev->status_len)
|
||||
return (0);
|
||||
return 0;
|
||||
ret = dev->status_data[dev->status_pos++];
|
||||
if (dev->status_pos >= dev->status_len) {
|
||||
dev->status &= ~STATUS_STATUS_OUT_FULL;
|
||||
@@ -999,7 +999,7 @@ esdi_readw(uint16_t port, void *priv)
|
||||
fatal("esdi_readw port=%04x\n", port);
|
||||
}
|
||||
|
||||
return (ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -1117,7 +1117,8 @@ esdi_init(const device_t *info)
|
||||
{
|
||||
drive_t *drive;
|
||||
esdi_t *dev;
|
||||
int c, i;
|
||||
uint8_t c;
|
||||
uint8_t i;
|
||||
|
||||
dev = malloc(sizeof(esdi_t));
|
||||
if (dev == NULL)
|
||||
@@ -1178,7 +1179,7 @@ esdi_init(const device_t *info)
|
||||
/* Set the reply timer. */
|
||||
timer_add(&dev->timer, esdi_callback, dev, 0);
|
||||
|
||||
return (dev);
|
||||
return dev;
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -1186,11 +1187,10 @@ esdi_close(void *priv)
|
||||
{
|
||||
esdi_t *dev = (esdi_t *) priv;
|
||||
drive_t *drive;
|
||||
int d;
|
||||
|
||||
dev->drives[0].present = dev->drives[1].present = 0;
|
||||
|
||||
for (d = 0; d < 2; d++) {
|
||||
for (uint8_t d = 0; d < 2; d++) {
|
||||
drive = &dev->drives[d];
|
||||
|
||||
hdd_image_close(drive->hdd_num);
|
||||
|
||||
@@ -176,7 +176,8 @@ static uint8_t ide_qua_pnp_rom[] = {
|
||||
};
|
||||
|
||||
ide_t *ide_drives[IDE_NUM];
|
||||
int ide_ter_enabled = 0, ide_qua_enabled = 0;
|
||||
int ide_ter_enabled = 0;
|
||||
int ide_qua_enabled = 0;
|
||||
|
||||
static void ide_atapi_callback(ide_t *ide);
|
||||
static void ide_callback(void *priv);
|
||||
@@ -389,9 +390,9 @@ ide_irq_update(ide_t *ide)
|
||||
void
|
||||
ide_padstr(char *str, const char *src, int len)
|
||||
{
|
||||
int i, v;
|
||||
int v;
|
||||
|
||||
for (i = 0; i < len; i++) {
|
||||
for (int i = 0; i < len; i++) {
|
||||
if (*src != '\0')
|
||||
v = *src++;
|
||||
else
|
||||
@@ -412,9 +413,7 @@ ide_padstr(char *str, const char *src, int len)
|
||||
void
|
||||
ide_padstr8(uint8_t *buf, int buf_size, const char *src)
|
||||
{
|
||||
int i;
|
||||
|
||||
for (i = 0; i < buf_size; i++) {
|
||||
for (int i = 0; i < buf_size; i++) {
|
||||
if (*src != '\0')
|
||||
buf[i] = *src++;
|
||||
else
|
||||
@@ -488,7 +487,9 @@ ide_hd_identify(ide_t *ide)
|
||||
{
|
||||
char device_identify[9] = { '8', '6', 'B', '_', 'H', 'D', '0', '0', 0 };
|
||||
|
||||
uint32_t d_hpc, d_spt, d_tracks;
|
||||
uint32_t d_hpc;
|
||||
uint32_t d_spt;
|
||||
uint32_t d_tracks;
|
||||
uint64_t full_size = (((uint64_t) hdd[ide->hdd_num].tracks) * hdd[ide->hdd_num].hpc * hdd[ide->hdd_num].spt);
|
||||
|
||||
device_identify[6] = (ide->hdd_num / 10) + 0x30;
|
||||
@@ -577,7 +578,12 @@ ide_hd_identify(ide_t *ide)
|
||||
static void
|
||||
ide_identify(ide_t *ide)
|
||||
{
|
||||
int d, i, max_pio, max_sdma, max_mdma, max_udma;
|
||||
int d;
|
||||
int i;
|
||||
int max_pio;
|
||||
int max_sdma;
|
||||
int max_mdma;
|
||||
int max_udma;
|
||||
ide_t *ide_other = ide_drives[ide->channel ^ 1];
|
||||
|
||||
ide_log("IDE IDENTIFY or IDENTIFY PACKET DEVICE on board %i (channel %i)\n", ide->board, ide->channel);
|
||||
@@ -674,7 +680,8 @@ ide_identify(ide_t *ide)
|
||||
static off64_t
|
||||
ide_get_sector(ide_t *ide)
|
||||
{
|
||||
uint32_t heads, sectors;
|
||||
uint32_t heads;
|
||||
uint32_t sectors;
|
||||
|
||||
if (ide->lba)
|
||||
return (off64_t) ide->lba_addr;
|
||||
@@ -749,8 +756,11 @@ ide_set_signature(ide_t *ide)
|
||||
static int
|
||||
ide_set_features(ide_t *ide)
|
||||
{
|
||||
uint8_t features, features_data;
|
||||
int mode, submode, max;
|
||||
uint8_t features;
|
||||
uint8_t features_data;
|
||||
int mode;
|
||||
int submode;
|
||||
int max;
|
||||
|
||||
features = ide->cylprecomp;
|
||||
features_data = ide->secount;
|
||||
@@ -836,7 +846,8 @@ ide_set_features(ide_t *ide)
|
||||
void
|
||||
ide_set_sector(ide_t *ide, int64_t sector_num)
|
||||
{
|
||||
unsigned int cyl, r;
|
||||
unsigned int cyl;
|
||||
unsigned int r;
|
||||
if (ide->lba) {
|
||||
ide->head = (sector_num >> 24);
|
||||
ide->cylinder = (sector_num >> 8);
|
||||
@@ -942,7 +953,8 @@ ide_atapi_command_bus(ide_t *ide)
|
||||
static void
|
||||
ide_atapi_callback(ide_t *ide)
|
||||
{
|
||||
int out, ret = 0;
|
||||
int out;
|
||||
int ret = 0;
|
||||
|
||||
switch (ide->sc->packet_status) {
|
||||
case PHASE_IDLE:
|
||||
@@ -1326,7 +1338,8 @@ ide_write_devctl(uint16_t addr, uint8_t val, void *priv)
|
||||
{
|
||||
ide_board_t *dev = (ide_board_t *) priv;
|
||||
|
||||
ide_t *ide, *ide_other;
|
||||
ide_t *ide;
|
||||
ide_t *ide_other;
|
||||
int ch;
|
||||
uint8_t old;
|
||||
|
||||
@@ -1428,7 +1441,8 @@ ide_writeb(uint16_t addr, uint8_t val, void *priv)
|
||||
{
|
||||
ide_board_t *dev = (ide_board_t *) priv;
|
||||
|
||||
ide_t *ide, *ide_other;
|
||||
ide_t *ide;
|
||||
ide_t *ide_other;
|
||||
int ch;
|
||||
|
||||
ch = dev->cur_dev;
|
||||
@@ -1913,7 +1927,8 @@ ide_readb(uint16_t addr, void *priv)
|
||||
{
|
||||
ide_board_t *dev = (ide_board_t *) priv;
|
||||
|
||||
int ch, absent = 0;
|
||||
int ch;
|
||||
int absent = 0;
|
||||
ide_t *ide;
|
||||
|
||||
ch = dev->cur_dev;
|
||||
@@ -2170,7 +2185,8 @@ atapi_error_no_ready(ide_t *ide)
|
||||
static void
|
||||
ide_callback(void *priv)
|
||||
{
|
||||
int snum, ret = 0;
|
||||
int snum;
|
||||
int ret = 0;
|
||||
|
||||
ide_t *ide = (ide_t *) priv;
|
||||
|
||||
@@ -2580,8 +2596,10 @@ id_not_found:
|
||||
uint8_t
|
||||
ide_read_ali_75(void)
|
||||
{
|
||||
ide_t *ide0, *ide1;
|
||||
int ch0, ch1;
|
||||
ide_t *ide0;
|
||||
ide_t *ide1;
|
||||
int ch0;
|
||||
int ch1;
|
||||
uint8_t ret = 0x00;
|
||||
|
||||
ch0 = ide_boards[0]->cur_dev;
|
||||
@@ -2604,8 +2622,10 @@ ide_read_ali_75(void)
|
||||
uint8_t
|
||||
ide_read_ali_76(void)
|
||||
{
|
||||
ide_t *ide0, *ide1;
|
||||
int ch0, ch1;
|
||||
ide_t *ide0;
|
||||
ide_t *ide1;
|
||||
int ch0;
|
||||
int ch1;
|
||||
uint8_t ret = 0x00;
|
||||
|
||||
ch0 = ide_boards[0]->cur_dev;
|
||||
@@ -2743,7 +2763,7 @@ static void
|
||||
ide_board_close(int board)
|
||||
{
|
||||
ide_t *dev;
|
||||
int c, d;
|
||||
int c;
|
||||
|
||||
ide_log("ide_board_close(%i)\n", board);
|
||||
|
||||
@@ -2757,7 +2777,7 @@ ide_board_close(int board)
|
||||
ide_clear_bus_master(board);
|
||||
|
||||
/* Close hard disk image files (if previously open) */
|
||||
for (d = 0; d < 2; d++) {
|
||||
for (uint8_t d = 0; d < 2; d++) {
|
||||
c = (board << 1) + d;
|
||||
|
||||
ide_boards[board]->ide[d] = NULL;
|
||||
@@ -2797,9 +2817,13 @@ static void
|
||||
ide_board_setup(int board)
|
||||
{
|
||||
ide_t *dev;
|
||||
int c, d;
|
||||
int ch, is_ide, valid_ch;
|
||||
int min_ch, max_ch;
|
||||
int c;
|
||||
int d;
|
||||
int ch;
|
||||
int is_ide;
|
||||
int valid_ch;
|
||||
int min_ch;
|
||||
int max_ch;
|
||||
|
||||
min_ch = (board << 1);
|
||||
max_ch = min_ch + 1;
|
||||
@@ -3015,7 +3039,7 @@ ide_init(const device_t *info)
|
||||
break;
|
||||
}
|
||||
|
||||
return (ide_drives);
|
||||
return ide_drives;
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -3047,7 +3071,8 @@ ide_drive_reset(int d)
|
||||
static void
|
||||
ide_board_reset(int board)
|
||||
{
|
||||
int d, min, max;
|
||||
int min;
|
||||
int max;
|
||||
|
||||
ide_log("Resetting IDE board %i...\n", board);
|
||||
|
||||
@@ -3056,7 +3081,7 @@ ide_board_reset(int board)
|
||||
min = (board << 1);
|
||||
max = min + 2;
|
||||
|
||||
for (d = min; d < max; d++)
|
||||
for (int d = min; d < max; d++)
|
||||
ide_drive_reset(d);
|
||||
}
|
||||
|
||||
|
||||
@@ -102,7 +102,8 @@ cmd640_set_irq(int channel, void *priv)
|
||||
static void
|
||||
cmd640_ide_handlers(cmd640_t *dev)
|
||||
{
|
||||
uint16_t main, side;
|
||||
uint16_t main;
|
||||
uint16_t side;
|
||||
|
||||
ide_pri_disable();
|
||||
|
||||
|
||||
@@ -96,7 +96,8 @@ cmd646_bus_master_dma(int channel, uint8_t *data, int transfer_length, int out,
|
||||
static void
|
||||
cmd646_ide_handlers(cmd646_t *dev)
|
||||
{
|
||||
uint16_t main, side;
|
||||
uint16_t main;
|
||||
uint16_t side;
|
||||
int irq_mode[2] = { 0, 0 };
|
||||
|
||||
ide_pri_disable();
|
||||
|
||||
@@ -302,7 +302,8 @@ sff_bus_master_dma(int channel, uint8_t *data, int transfer_length, int out, voi
|
||||
char *sop;
|
||||
#endif
|
||||
|
||||
int force_end = 0, buffer_pos = 0;
|
||||
int force_end = 0;
|
||||
int buffer_pos = 0;
|
||||
|
||||
#ifdef ENABLE_SFF_LOG
|
||||
sop = out ? "Read" : "Writ";
|
||||
|
||||
@@ -177,35 +177,35 @@ get_sector(mfm_t *mfm, off64_t *addr)
|
||||
diagnostics v2.07 will error with: ERROR 152 - SYSTEM BOARD. */
|
||||
if (drive->curcyl != mfm->cylinder) {
|
||||
st506_at_log("WD1003(%d) sector: wrong cylinder\n");
|
||||
return (1);
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (mfm->head > drive->cfg_hpc) {
|
||||
st506_at_log("WD1003(%d) get_sector: past end of configured heads\n",
|
||||
mfm->drvsel);
|
||||
return (1);
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (mfm->sector >= drive->cfg_spt + 1) {
|
||||
st506_at_log("WD1003(%d) get_sector: past end of configured sectors\n",
|
||||
mfm->drvsel);
|
||||
return (1);
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* We should check this in the SET_DRIVE_PARAMETERS command! --FvK */
|
||||
if (mfm->head > drive->hpc) {
|
||||
st506_at_log("WD1003(%d) get_sector: past end of heads\n", mfm->drvsel);
|
||||
return (1);
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (mfm->sector >= drive->spt + 1) {
|
||||
st506_at_log("WD1003(%d) get_sector: past end of sectors\n", mfm->drvsel);
|
||||
return (1);
|
||||
return 1;
|
||||
}
|
||||
|
||||
*addr = ((((off64_t) mfm->cylinder * drive->cfg_hpc) + mfm->head) * drive->cfg_spt) + (mfm->sector - 1);
|
||||
|
||||
return (0);
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* Move to the next sector using CHS addressing. */
|
||||
@@ -468,7 +468,7 @@ mfm_readw(uint16_t port, void *priv)
|
||||
}
|
||||
}
|
||||
|
||||
return (ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
static uint8_t
|
||||
@@ -517,7 +517,7 @@ mfm_read(uint16_t port, void *priv)
|
||||
|
||||
st506_at_log("WD1003 read(%04x) = %02x\n", port, ret);
|
||||
|
||||
return (ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -689,14 +689,14 @@ static void *
|
||||
mfm_init(const device_t *info)
|
||||
{
|
||||
mfm_t *mfm;
|
||||
int c, d;
|
||||
int c;
|
||||
|
||||
st506_at_log("WD1003: ISA MFM/RLL Fixed Disk Adapter initializing ...\n");
|
||||
mfm = malloc(sizeof(mfm_t));
|
||||
memset(mfm, 0x00, sizeof(mfm_t));
|
||||
|
||||
c = 0;
|
||||
for (d = 0; d < HDD_NUM; d++) {
|
||||
for (uint8_t d = 0; d < HDD_NUM; d++) {
|
||||
if ((hdd[d].bus == HDD_BUS_MFM) && (hdd[d].mfm_channel < MFM_NUM)) {
|
||||
loadhd(mfm, hdd[d].mfm_channel, d, hdd[d].fn);
|
||||
|
||||
@@ -722,16 +722,15 @@ mfm_init(const device_t *info)
|
||||
|
||||
ui_sb_update_icon(SB_HDD | HDD_BUS_MFM, 0);
|
||||
|
||||
return (mfm);
|
||||
return mfm;
|
||||
}
|
||||
|
||||
static void
|
||||
mfm_close(void *priv)
|
||||
{
|
||||
mfm_t *mfm = (mfm_t *) priv;
|
||||
int d;
|
||||
|
||||
for (d = 0; d < 2; d++) {
|
||||
for (uint8_t d = 0; d < 2; d++) {
|
||||
drive_t *drive = &mfm->drives[d];
|
||||
|
||||
hdd_image_close(drive->hdd_num);
|
||||
|
||||
@@ -369,7 +369,7 @@ get_sector(hdc_t *dev, drive_t *drive, off64_t *addr)
|
||||
if (!drive->present) {
|
||||
/* No need to log this. */
|
||||
dev->error = dev->nr_err;
|
||||
return (0);
|
||||
return 0;
|
||||
}
|
||||
|
||||
#if 0
|
||||
@@ -387,19 +387,19 @@ get_sector(hdc_t *dev, drive_t *drive, off64_t *addr)
|
||||
st506_xt_log("ST506: get_sector: past end of configured heads\n");
|
||||
#endif
|
||||
dev->error = ERR_ILLEGAL_ADDR;
|
||||
return (0);
|
||||
return 0;
|
||||
}
|
||||
if (dev->sector >= drive->cfg_spt) {
|
||||
#ifdef ENABLE_ST506_XT_LOG
|
||||
st506_xt_log("ST506: get_sector: past end of configured sectors\n");
|
||||
#endif
|
||||
dev->error = ERR_ILLEGAL_ADDR;
|
||||
return (0);
|
||||
return 0;
|
||||
}
|
||||
|
||||
*addr = ((((off64_t) dev->cylinder * drive->cfg_hpc) + dev->head) * drive->cfg_spt) + dev->sector;
|
||||
|
||||
return (1);
|
||||
return 1;
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -446,12 +446,12 @@ get_chs(hdc_t *dev, drive_t *drive)
|
||||
* result in an ERR_ILLEGAL_ADDR. --FvK
|
||||
*/
|
||||
drive->cylinder = drive->cfg_cyl - 1;
|
||||
return (0);
|
||||
return 0;
|
||||
}
|
||||
|
||||
drive->cylinder = dev->cylinder;
|
||||
|
||||
return (1);
|
||||
return 1;
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -1217,7 +1217,7 @@ st506_read(uint16_t port, void *priv)
|
||||
}
|
||||
st506_xt_log("ST506: read(%04x) = %02x\n", port, ret);
|
||||
|
||||
return (ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* Write to one of the registers. */
|
||||
@@ -1287,7 +1287,8 @@ static void
|
||||
mem_write(uint32_t addr, uint8_t val, void *priv)
|
||||
{
|
||||
hdc_t *dev = (hdc_t *) priv;
|
||||
uint32_t ptr, mask = 0;
|
||||
uint32_t ptr;
|
||||
uint32_t mask = 0;
|
||||
|
||||
/* Ignore accesses to anything below the configured address,
|
||||
needed because of the emulator's 4k mapping granularity. */
|
||||
@@ -1317,7 +1318,8 @@ static uint8_t
|
||||
mem_read(uint32_t addr, void *priv)
|
||||
{
|
||||
hdc_t *dev = (hdc_t *) priv;
|
||||
uint32_t ptr, mask = 0;
|
||||
uint32_t ptr;
|
||||
uint32_t mask = 0;
|
||||
uint8_t ret = 0xff;
|
||||
|
||||
/* Ignore accesses to anything below the configured address,
|
||||
@@ -1373,7 +1375,7 @@ mem_read(uint32_t addr, void *priv)
|
||||
else
|
||||
ret = dev->bios_rom.rom[addr];
|
||||
|
||||
return (ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -1467,12 +1469,11 @@ static void
|
||||
set_switches(hdc_t *dev, hd_type_t *hdt, int num)
|
||||
{
|
||||
drive_t *drive;
|
||||
int c, d;
|
||||
int e;
|
||||
|
||||
dev->switches = 0x00;
|
||||
|
||||
for (d = 0; d < MFM_NUM; d++) {
|
||||
for (uint8_t d = 0; d < MFM_NUM; d++) {
|
||||
drive = &dev->drives[d];
|
||||
|
||||
if (!drive->present) {
|
||||
@@ -1481,7 +1482,7 @@ set_switches(hdc_t *dev, hd_type_t *hdt, int num)
|
||||
continue;
|
||||
}
|
||||
|
||||
for (c = 0; c < num; c++) {
|
||||
for (int c = 0; c < num; c++) {
|
||||
/* Does the Xebec also support more than 4 types? */
|
||||
if ((drive->spt == hdt[c].spt) && (drive->hpc == hdt[c].hpc) && (drive->tracks == hdt[c].tracks)) {
|
||||
/* Olivetti M24/M240: Move the upper 2 bites up by 2 bits, as the
|
||||
@@ -1511,7 +1512,8 @@ st506_init(const device_t *info)
|
||||
{
|
||||
char *fn = NULL;
|
||||
hdc_t *dev;
|
||||
int i, c;
|
||||
int i;
|
||||
int c;
|
||||
|
||||
dev = (hdc_t *) malloc(sizeof(hdc_t));
|
||||
memset(dev, 0x00, sizeof(hdc_t));
|
||||
@@ -1703,7 +1705,7 @@ st506_init(const device_t *info)
|
||||
dev->drives[c].cfg_spt = dev->drives[c].spt;
|
||||
}
|
||||
|
||||
return (dev);
|
||||
return dev;
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -1711,9 +1713,8 @@ st506_close(void *priv)
|
||||
{
|
||||
hdc_t *dev = (hdc_t *) priv;
|
||||
drive_t *drive;
|
||||
int d;
|
||||
|
||||
for (d = 0; d < MFM_NUM; d++) {
|
||||
for (uint8_t d = 0; d < MFM_NUM; d++) {
|
||||
drive = &dev->drives[d];
|
||||
|
||||
hdd_image_close(drive->hdd_num);
|
||||
|
||||
@@ -308,25 +308,25 @@ get_sector(hdc_t *dev, drive_t *drive, off64_t *addr)
|
||||
xta_log("%s: get_sector: wrong cylinder %d/%d\n",
|
||||
dev->name, drive->cur_cyl, dev->track);
|
||||
dev->sense = ERR_ILLADDR;
|
||||
return (1);
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (dev->head >= drive->hpc) {
|
||||
xta_log("%s: get_sector: past end of heads\n", dev->name);
|
||||
dev->sense = ERR_ILLADDR;
|
||||
return (1);
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (dev->sector >= drive->spt) {
|
||||
xta_log("%s: get_sector: past end of sectors\n", dev->name);
|
||||
dev->sense = ERR_ILLADDR;
|
||||
return (1);
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* Calculate logical address (block number) of desired sector. */
|
||||
*addr = ((((off64_t) dev->track * drive->hpc) + dev->head) * drive->spt) + dev->sector;
|
||||
|
||||
return (0);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -375,10 +375,11 @@ do_seek(hdc_t *dev, drive_t *drive, int cyl)
|
||||
static void
|
||||
do_format(hdc_t *dev, drive_t *drive, dcb_t *dcb)
|
||||
{
|
||||
int start_cyl, end_cyl;
|
||||
int start_hd, end_hd;
|
||||
int start_cyl;
|
||||
int end_cyl;
|
||||
int start_hd;
|
||||
int end_hd;
|
||||
off64_t addr;
|
||||
int h, s;
|
||||
|
||||
/* Get the parameters from the DCB. */
|
||||
if (dcb->cmd == CMD_FORMAT_DRIVE) {
|
||||
@@ -413,8 +414,8 @@ do_fmt:
|
||||
* data to fill the sectors with, so we will use
|
||||
* that at least.
|
||||
*/
|
||||
for (h = start_hd; h < end_hd; h++) {
|
||||
for (s = 0; s < drive->spt; s++) {
|
||||
for (int h = start_hd; h < end_hd; h++) {
|
||||
for (uint8_t s = 0; s < drive->spt; s++) {
|
||||
/* Set the sector we need to write. */
|
||||
dev->head = h;
|
||||
dev->sector = s;
|
||||
@@ -901,7 +902,7 @@ hdc_read(uint16_t port, void *priv)
|
||||
break;
|
||||
}
|
||||
|
||||
return (ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* Write to one of the controller registers. */
|
||||
@@ -970,7 +971,7 @@ xta_init(const device_t *info)
|
||||
char *bios_rev = NULL;
|
||||
char *fn = NULL;
|
||||
hdc_t *dev;
|
||||
int c, i;
|
||||
int c;
|
||||
int max = XTA_NUM;
|
||||
|
||||
/* Allocate and initialize device block. */
|
||||
@@ -1007,7 +1008,7 @@ xta_init(const device_t *info)
|
||||
|
||||
/* Load any disks for this device class. */
|
||||
c = 0;
|
||||
for (i = 0; i < HDD_NUM; i++) {
|
||||
for (uint8_t i = 0; i < HDD_NUM; i++) {
|
||||
if ((hdd[i].bus == HDD_BUS_XTA) && (hdd[i].xta_channel < max)) {
|
||||
drive = &dev->drives[hdd[i].xta_channel];
|
||||
|
||||
@@ -1051,7 +1052,7 @@ xta_init(const device_t *info)
|
||||
/* Create a timer for command delays. */
|
||||
timer_add(&dev->timer, hdc_callback, dev, 0);
|
||||
|
||||
return (dev);
|
||||
return dev;
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -1059,14 +1060,13 @@ xta_close(void *priv)
|
||||
{
|
||||
hdc_t *dev = (hdc_t *) priv;
|
||||
drive_t *drive;
|
||||
int d;
|
||||
|
||||
/* Remove the I/O handler. */
|
||||
io_removehandler(dev->base, 4,
|
||||
hdc_read, NULL, NULL, hdc_write, NULL, NULL, dev);
|
||||
|
||||
/* Close all disks and their images. */
|
||||
for (d = 0; d < XTA_NUM; d++) {
|
||||
for (uint8_t d = 0; d < XTA_NUM; d++) {
|
||||
drive = &dev->drives[d];
|
||||
|
||||
hdd_image_close(drive->hdd_num);
|
||||
|
||||
@@ -145,7 +145,7 @@ xtide_init(const device_t *info)
|
||||
xtide_read, NULL, NULL,
|
||||
xtide_write, NULL, NULL, xtide);
|
||||
|
||||
return (xtide);
|
||||
return xtide;
|
||||
}
|
||||
|
||||
static int
|
||||
@@ -177,7 +177,7 @@ xtide_at_init(const device_t *info)
|
||||
|
||||
device_add(&ide_isa_2ch_device);
|
||||
|
||||
return (xtide);
|
||||
return xtide;
|
||||
}
|
||||
|
||||
static int
|
||||
@@ -208,7 +208,7 @@ xtide_acculogic_init(const device_t *info)
|
||||
xtide_read, NULL, NULL,
|
||||
xtide_write, NULL, NULL, xtide);
|
||||
|
||||
return (xtide);
|
||||
return xtide;
|
||||
}
|
||||
|
||||
static int
|
||||
@@ -239,7 +239,7 @@ xtide_at_ps2_init(const device_t *info)
|
||||
|
||||
device_add(&ide_isa_2ch_device);
|
||||
|
||||
return (xtide);
|
||||
return xtide;
|
||||
}
|
||||
|
||||
static int
|
||||
|
||||
@@ -41,23 +41,23 @@ hdd_init(void)
|
||||
/* Clear all global data. */
|
||||
memset(hdd, 0x00, sizeof(hdd));
|
||||
|
||||
return (0);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int
|
||||
hdd_string_to_bus(char *str, int cdrom)
|
||||
{
|
||||
if (!strcmp(str, "none"))
|
||||
return (HDD_BUS_DISABLED);
|
||||
return HDD_BUS_DISABLED;
|
||||
|
||||
if (!strcmp(str, "mfm") || !strcmp(str, "rll")) {
|
||||
if (cdrom) {
|
||||
no_cdrom:
|
||||
ui_msgbox_header(MBX_ERROR, (wchar_t *) IDS_2131, (wchar_t *) IDS_4099);
|
||||
return (0);
|
||||
return 0;
|
||||
}
|
||||
|
||||
return (HDD_BUS_MFM);
|
||||
return HDD_BUS_MFM;
|
||||
}
|
||||
|
||||
/* FIXME: delete 'rll' in a year or so.. --FvK */
|
||||
@@ -65,40 +65,40 @@ no_cdrom:
|
||||
if (cdrom)
|
||||
goto no_cdrom;
|
||||
|
||||
return (HDD_BUS_ESDI);
|
||||
return HDD_BUS_ESDI;
|
||||
}
|
||||
|
||||
if (!strcmp(str, "ide_pio_only"))
|
||||
return (HDD_BUS_IDE);
|
||||
return HDD_BUS_IDE;
|
||||
|
||||
if (!strcmp(str, "ide"))
|
||||
return (HDD_BUS_IDE);
|
||||
return HDD_BUS_IDE;
|
||||
|
||||
if (!strcmp(str, "atapi_pio_only"))
|
||||
return (HDD_BUS_ATAPI);
|
||||
return HDD_BUS_ATAPI;
|
||||
|
||||
if (!strcmp(str, "atapi"))
|
||||
return (HDD_BUS_ATAPI);
|
||||
return HDD_BUS_ATAPI;
|
||||
|
||||
if (!strcmp(str, "eide"))
|
||||
return (HDD_BUS_IDE);
|
||||
return HDD_BUS_IDE;
|
||||
|
||||
if (!strcmp(str, "xta"))
|
||||
return (HDD_BUS_XTA);
|
||||
return HDD_BUS_XTA;
|
||||
|
||||
if (!strcmp(str, "atide"))
|
||||
return (HDD_BUS_IDE);
|
||||
return HDD_BUS_IDE;
|
||||
|
||||
if (!strcmp(str, "ide_pio_and_dma"))
|
||||
return (HDD_BUS_IDE);
|
||||
return HDD_BUS_IDE;
|
||||
|
||||
if (!strcmp(str, "atapi_pio_and_dma"))
|
||||
return (HDD_BUS_ATAPI);
|
||||
return HDD_BUS_ATAPI;
|
||||
|
||||
if (!strcmp(str, "scsi"))
|
||||
return (HDD_BUS_SCSI);
|
||||
return HDD_BUS_SCSI;
|
||||
|
||||
return (0);
|
||||
return 0;
|
||||
}
|
||||
|
||||
char *
|
||||
@@ -136,22 +136,22 @@ hdd_bus_to_string(int bus, int cdrom)
|
||||
break;
|
||||
}
|
||||
|
||||
return (s);
|
||||
return s;
|
||||
}
|
||||
|
||||
int
|
||||
hdd_is_valid(int c)
|
||||
{
|
||||
if (hdd[c].bus == HDD_BUS_DISABLED)
|
||||
return (0);
|
||||
return 0;
|
||||
|
||||
if (strlen(hdd[c].fn) == 0)
|
||||
return (0);
|
||||
return 0;
|
||||
|
||||
if ((hdd[c].tracks == 0) || (hdd[c].hpc == 0) || (hdd[c].spt == 0))
|
||||
return (0);
|
||||
return 0;
|
||||
|
||||
return (1);
|
||||
return 1;
|
||||
}
|
||||
|
||||
double
|
||||
@@ -204,8 +204,9 @@ static void
|
||||
hdd_readahead_update(hard_disk_t *hdd)
|
||||
{
|
||||
uint64_t elapsed_cycles;
|
||||
double elapsed_us, seek_time;
|
||||
uint32_t max_read_ahead, i;
|
||||
double elapsed_us;
|
||||
double seek_time;
|
||||
uint32_t max_read_ahead;
|
||||
uint32_t space_needed;
|
||||
|
||||
hdd_cache_t *cache = &hdd->cache;
|
||||
@@ -219,7 +220,7 @@ hdd_readahead_update(hard_disk_t *hdd)
|
||||
|
||||
seek_time = 0.0;
|
||||
|
||||
for (i = 0; i < max_read_ahead; i++) {
|
||||
for (uint32_t i = 0; i < max_read_ahead; i++) {
|
||||
seek_time += hdd_seek_get_time(hdd, segment->ra_addr, HDD_OP_READ, 1, elapsed_us - seek_time);
|
||||
if (seek_time > elapsed_us)
|
||||
break;
|
||||
@@ -252,7 +253,8 @@ static void
|
||||
hdd_writecache_update(hard_disk_t *hdd)
|
||||
{
|
||||
uint64_t elapsed_cycles;
|
||||
double elapsed_us, seek_time;
|
||||
double elapsed_us;
|
||||
double seek_time;
|
||||
|
||||
if (hdd->cache.write_pending) {
|
||||
elapsed_cycles = tsc - hdd->cache.write_start_time;
|
||||
@@ -383,13 +385,12 @@ static void
|
||||
hdd_cache_init(hard_disk_t *hdd)
|
||||
{
|
||||
hdd_cache_t *cache = &hdd->cache;
|
||||
uint32_t i;
|
||||
|
||||
cache->ra_segment = 0;
|
||||
cache->ra_ongoing = 0;
|
||||
cache->ra_start_time = 0;
|
||||
|
||||
for (i = 0; i < cache->num_segments; i++) {
|
||||
for (uint32_t i = 0; i < cache->num_segments; i++) {
|
||||
cache->segments[i].valid = 0;
|
||||
cache->segments[i].lru = 0;
|
||||
cache->segments[i].id = i;
|
||||
@@ -401,12 +402,13 @@ hdd_cache_init(hard_disk_t *hdd)
|
||||
static void
|
||||
hdd_zones_init(hard_disk_t *hdd)
|
||||
{
|
||||
uint32_t lba = 0, track = 0;
|
||||
uint32_t i, tracks;
|
||||
uint32_t lba = 0;
|
||||
uint32_t track = 0;
|
||||
uint32_t tracks;
|
||||
double revolution_usec = 60.0 / (double) hdd->rpm * 1000000.0;
|
||||
hdd_zone_t *zone;
|
||||
|
||||
for (i = 0; i < hdd->num_zones; i++) {
|
||||
for (uint32_t i = 0; i < hdd->num_zones; i++) {
|
||||
zone = &hdd->zones[i];
|
||||
zone->start_sector = lba;
|
||||
zone->start_track = track;
|
||||
@@ -467,10 +469,15 @@ void
|
||||
hdd_preset_apply(int hdd_id)
|
||||
{
|
||||
hard_disk_t *hd = &hdd[hdd_id];
|
||||
double revolution_usec, zone_percent;
|
||||
uint32_t disk_sectors, sectors_per_surface, cylinders, cylinders_per_zone;
|
||||
uint32_t total_sectors = 0, i;
|
||||
uint32_t spt, zone_sectors;
|
||||
double revolution_usec;
|
||||
double zone_percent;
|
||||
uint32_t disk_sectors;
|
||||
uint32_t sectors_per_surface;
|
||||
uint32_t cylinders;
|
||||
uint32_t cylinders_per_zone;
|
||||
uint32_t total_sectors = 0;
|
||||
uint32_t spt;
|
||||
uint32_t zone_sectors;
|
||||
|
||||
if (hd->speed_preset >= hdd_preset_get_num())
|
||||
hd->speed_preset = 0;
|
||||
@@ -503,7 +510,7 @@ hdd_preset_apply(int hdd_id)
|
||||
hd->phy_cyl = cylinders;
|
||||
cylinders_per_zone = cylinders / preset->zones;
|
||||
|
||||
for (i = 0; i < preset->zones; i++) {
|
||||
for (uint32_t i = 0; i < preset->zones; i++) {
|
||||
zone_percent = i * 100 / (double) preset->zones;
|
||||
|
||||
if (i < preset->zones - 1) {
|
||||
|
||||
@@ -107,7 +107,7 @@ image_is_hdx(const char *s, int check_signature)
|
||||
if (fread(&signature, 1, 8, f) != 8)
|
||||
fatal("image_is_hdx(): Error reading signature\n");
|
||||
fclose(f);
|
||||
if (signature == 0xD778A82044445459ll)
|
||||
if (signature == 0xD778A82044445459LL)
|
||||
return 1;
|
||||
else
|
||||
return 0;
|
||||
@@ -143,7 +143,11 @@ hdd_image_calc_chs(uint32_t *c, uint32_t *h, uint32_t *s, uint32_t size)
|
||||
/* Calculate the geometry from size (in MB), using the algorithm provided in
|
||||
"Virtual Hard Disk Image Format Specification, Appendix: CHS Calculation" */
|
||||
uint64_t ts = ((uint64_t) size) << 11LL;
|
||||
uint32_t spt, heads, cyl, cth;
|
||||
uint32_t spt;
|
||||
uint32_t heads;
|
||||
uint32_t cyl;
|
||||
uint32_t cth;
|
||||
|
||||
if (ts > 65535 * 16 * 255)
|
||||
ts = 65535 * 16 * 255;
|
||||
|
||||
@@ -180,7 +184,7 @@ prepare_new_hard_disk(uint8_t id, uint64_t full_size)
|
||||
uint64_t target_size = (full_size + hdd_images[id].base) - ftello64(hdd_images[id].file);
|
||||
|
||||
uint32_t size;
|
||||
uint32_t t, i;
|
||||
uint32_t t;
|
||||
|
||||
t = (uint32_t) (target_size >> 20); /* Amount of 1 MB blocks. */
|
||||
size = (uint32_t) (target_size & 0xfffff); /* 1 MB mask. */
|
||||
@@ -195,7 +199,7 @@ prepare_new_hard_disk(uint8_t id, uint64_t full_size)
|
||||
|
||||
/* First, write all the 1 MB blocks. */
|
||||
if (t > 0) {
|
||||
for (i = 0; i < t; i++) {
|
||||
for (uint32_t i = 0; i < t; i++) {
|
||||
fseek(hdd_images[id].file, 0, SEEK_END);
|
||||
fwrite(empty_sector_1mb, 1, 1048576, hdd_images[id].file);
|
||||
pclog("#");
|
||||
@@ -224,9 +228,7 @@ prepare_new_hard_disk(uint8_t id, uint64_t full_size)
|
||||
void
|
||||
hdd_image_init(void)
|
||||
{
|
||||
int i;
|
||||
|
||||
for (i = 0; i < HDD_NUM; i++)
|
||||
for (uint8_t i = 0; i < HDD_NUM; i++)
|
||||
memset(&hdd_images[i], 0, sizeof(hdd_image_t));
|
||||
}
|
||||
|
||||
@@ -235,10 +237,12 @@ hdd_image_load(int id)
|
||||
{
|
||||
uint32_t sector_size = 512;
|
||||
uint32_t zero = 0;
|
||||
uint64_t signature = 0xD778A82044445459ll;
|
||||
uint64_t signature = 0xD778A82044445459LL;
|
||||
uint64_t full_size = 0;
|
||||
uint64_t spt = 0, hpc = 0, tracks = 0;
|
||||
int c, ret;
|
||||
uint64_t spt = 0;
|
||||
uint64_t hpc = 0;
|
||||
uint64_t tracks = 0;
|
||||
int ret;
|
||||
uint64_t s = 0;
|
||||
char *fn = hdd[id].fn;
|
||||
int is_hdx[2] = { 0, 0 };
|
||||
@@ -306,7 +310,7 @@ hdd_image_load(int id)
|
||||
fwrite(&(hdd[id].spt), 1, 4, hdd_images[id].file);
|
||||
fwrite(&(hdd[id].hpc), 1, 4, hdd_images[id].file);
|
||||
fwrite(&(hdd[id].tracks), 1, 4, hdd_images[id].file);
|
||||
for (c = 0; c < 0x3f8; c++)
|
||||
for (uint16_t c = 0; c < 0x3f8; c++)
|
||||
fwrite(&zero, 1, 4, hdd_images[id].file);
|
||||
hdd_images[id].type = HDD_IMAGE_HDI;
|
||||
} else if (is_hdx[0]) {
|
||||
@@ -560,8 +564,6 @@ hdd_image_zero(uint8_t id, uint32_t sector, uint32_t count)
|
||||
int non_transferred_sectors = mvhd_format_sectors(hdd_images[id].vhd, sector, count);
|
||||
hdd_images[id].pos = sector + count - non_transferred_sectors - 1;
|
||||
} else {
|
||||
uint32_t i = 0;
|
||||
|
||||
memset(empty_sector, 0, 512);
|
||||
|
||||
if (fseeko64(hdd_images[id].file, ((uint64_t) (sector) << 9LL) + hdd_images[id].base, SEEK_SET) == -1) {
|
||||
@@ -569,7 +571,7 @@ hdd_image_zero(uint8_t id, uint32_t sector, uint32_t count)
|
||||
return;
|
||||
}
|
||||
|
||||
for (i = 0; i < count; i++) {
|
||||
for (uint32_t i = 0; i < count; i++) {
|
||||
if (feof(hdd_images[id].file))
|
||||
break;
|
||||
|
||||
|
||||
@@ -118,7 +118,7 @@ const uint8_t mo_command_flags[0x100] = {
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
|
||||
};
|
||||
|
||||
static uint64_t mo_mode_sense_page_flags = (GPMODEP_ALL_PAGES);
|
||||
static uint64_t mo_mode_sense_page_flags = GPMODEP_ALL_PAGES;
|
||||
|
||||
static const mode_sense_pages_t mo_mode_sense_pages_default =
|
||||
// clang-format off
|
||||
@@ -306,9 +306,7 @@ mo_log(const char *fmt, ...)
|
||||
int
|
||||
find_mo_for_channel(uint8_t channel)
|
||||
{
|
||||
uint8_t i = 0;
|
||||
|
||||
for (i = 0; i < MO_NUM; i++) {
|
||||
for (uint8_t i = 0; i < MO_NUM; i++) {
|
||||
if ((mo_drives[i].bus_type == MO_BUS_ATAPI) && (mo_drives[i].ide_channel == channel))
|
||||
return i;
|
||||
}
|
||||
@@ -340,8 +338,8 @@ int
|
||||
mo_load(mo_t *dev, char *fn)
|
||||
{
|
||||
int is_mdi;
|
||||
uint32_t size = 0;
|
||||
unsigned int i, found = 0;
|
||||
uint32_t size = 0;
|
||||
unsigned int found = 0;
|
||||
|
||||
is_mdi = image_is_mdi(fn);
|
||||
|
||||
@@ -366,7 +364,7 @@ mo_load(mo_t *dev, char *fn)
|
||||
dev->drv->base = 0x1000;
|
||||
}
|
||||
|
||||
for (i = 0; i < KNOWN_MO_TYPES; i++) {
|
||||
for (uint8_t i = 0; i < KNOWN_MO_TYPES; i++) {
|
||||
if (size == (mo_types[i].sectors * mo_types[i].bytes_per_sector)) {
|
||||
found = 1;
|
||||
dev->drv->medium_size = mo_types[i].sectors;
|
||||
@@ -584,9 +582,6 @@ mo_mode_sense(mo_t *dev, uint8_t *buf, uint32_t pos, uint8_t page, uint8_t block
|
||||
|
||||
pf = mo_mode_sense_page_flags;
|
||||
|
||||
int i = 0;
|
||||
int j = 0;
|
||||
|
||||
uint8_t msplen;
|
||||
|
||||
page &= 0x3f;
|
||||
@@ -602,14 +597,14 @@ mo_mode_sense(mo_t *dev, uint8_t *buf, uint32_t pos, uint8_t page, uint8_t block
|
||||
buf[pos++] = (dev->drv->sector_size & 0xff);
|
||||
}
|
||||
|
||||
for (i = 0; i < 0x40; i++) {
|
||||
for (uint8_t i = 0; i < 0x40; i++) {
|
||||
if ((page == GPMODE_ALL_PAGES) || (page == i)) {
|
||||
if (pf & (1LL << ((uint64_t) page))) {
|
||||
buf[pos++] = mo_mode_sense_read(dev, page_control, i, 0);
|
||||
msplen = mo_mode_sense_read(dev, page_control, i, 1);
|
||||
buf[pos++] = msplen;
|
||||
mo_log("MO %i: MODE SENSE: Page [%02X] length %i\n", dev->id, i, msplen);
|
||||
for (j = 0; j < msplen; j++)
|
||||
for (uint8_t j = 0; j < msplen; j++)
|
||||
buf[pos++] = mo_mode_sense_read(dev, page_control, i, 2 + j);
|
||||
}
|
||||
}
|
||||
@@ -621,7 +616,8 @@ mo_mode_sense(mo_t *dev, uint8_t *buf, uint32_t pos, uint8_t page, uint8_t block
|
||||
static void
|
||||
mo_update_request_length(mo_t *dev, int len, int block_len)
|
||||
{
|
||||
int bt, min_len = 0;
|
||||
int bt;
|
||||
int min_len = 0;
|
||||
|
||||
dev->max_transfer_len = dev->request_length;
|
||||
|
||||
@@ -696,7 +692,8 @@ mo_bus_speed(mo_t *dev)
|
||||
static void
|
||||
mo_command_common(mo_t *dev)
|
||||
{
|
||||
double bytes_per_second, period;
|
||||
double bytes_per_second;
|
||||
double period;
|
||||
|
||||
dev->status = BUSY_STAT;
|
||||
dev->phase = 1;
|
||||
@@ -944,7 +941,6 @@ static int
|
||||
mo_blocks(mo_t *dev, int32_t *len, int first_batch, int out)
|
||||
{
|
||||
*len = 0;
|
||||
int i;
|
||||
|
||||
if (!dev->sector_len) {
|
||||
mo_command_complete(dev);
|
||||
@@ -961,7 +957,7 @@ mo_blocks(mo_t *dev, int32_t *len, int first_batch, int out)
|
||||
|
||||
*len = dev->requested_blocks * dev->drv->sector_size;
|
||||
|
||||
for (i = 0; i < dev->requested_blocks; i++) {
|
||||
for (int i = 0; i < dev->requested_blocks; i++) {
|
||||
if (fseek(dev->drv->f, dev->drv->base + (dev->sector_pos * dev->drv->sector_size) + (i * dev->drv->sector_size), SEEK_SET) == 1)
|
||||
break;
|
||||
|
||||
@@ -1283,11 +1279,14 @@ static void
|
||||
mo_command(scsi_common_t *sc, uint8_t *cdb)
|
||||
{
|
||||
mo_t *dev = (mo_t *) sc;
|
||||
int pos = 0, block_desc = 0;
|
||||
int pos = 0;
|
||||
int block_desc = 0;
|
||||
int ret;
|
||||
int32_t len, max_len;
|
||||
int32_t len;
|
||||
int32_t max_len;
|
||||
int32_t alloc_length;
|
||||
int size_idx, idx = 0;
|
||||
int size_idx;
|
||||
int idx = 0;
|
||||
unsigned preamble_len;
|
||||
char device_identify[9] = { '8', '6', 'B', '_', 'M', 'O', '0', '0', 0 };
|
||||
int32_t blen = 0;
|
||||
@@ -1769,7 +1768,7 @@ mo_command(scsi_common_t *sc, uint8_t *cdb)
|
||||
case GPCMD_ERASE_10:
|
||||
case GPCMD_ERASE_12:
|
||||
/*Relative address*/
|
||||
if ((cdb[1] & 1))
|
||||
if (cdb[1] & 1)
|
||||
previous_pos = dev->sector_pos;
|
||||
|
||||
switch (cdb[0]) {
|
||||
@@ -1782,7 +1781,7 @@ mo_command(scsi_common_t *sc, uint8_t *cdb)
|
||||
}
|
||||
|
||||
/*Erase all remaining sectors*/
|
||||
if ((cdb[1] & 4)) {
|
||||
if (cdb[1] & 4) {
|
||||
/* Cannot have a sector number when erase all*/
|
||||
if (dev->sector_len) {
|
||||
mo_invalid_field(dev);
|
||||
@@ -1852,15 +1851,18 @@ mo_phase_data_out(scsi_common_t *sc)
|
||||
{
|
||||
mo_t *dev = (mo_t *) sc;
|
||||
|
||||
uint16_t block_desc_len, pos;
|
||||
uint16_t block_desc_len;
|
||||
uint16_t pos;
|
||||
uint16_t param_list_len;
|
||||
|
||||
uint8_t error = 0;
|
||||
uint8_t page, page_len;
|
||||
uint8_t page;
|
||||
uint8_t page_len;
|
||||
|
||||
uint32_t i = 0;
|
||||
|
||||
uint8_t hdr_len, val, old_val, ch;
|
||||
uint8_t hdr_len;
|
||||
uint8_t val;
|
||||
uint8_t old_val;
|
||||
uint8_t ch;
|
||||
|
||||
int len = 0;
|
||||
|
||||
@@ -1918,7 +1920,7 @@ mo_phase_data_out(scsi_common_t *sc)
|
||||
if (!(mo_mode_sense_page_flags & (1LL << ((uint64_t) page))))
|
||||
error |= 1;
|
||||
else {
|
||||
for (i = 0; i < page_len; i++) {
|
||||
for (uint8_t i = 0; i < page_len; i++) {
|
||||
ch = mo_mode_sense_pages_changeable.pages[page][i + 2];
|
||||
val = dev->buffer[pos + i];
|
||||
old_val = dev->ms_pages_saved.pages[page][i + 2];
|
||||
@@ -2104,10 +2106,10 @@ void
|
||||
mo_hard_reset(void)
|
||||
{
|
||||
mo_t *dev;
|
||||
int c;
|
||||
uint8_t scsi_id, scsi_bus;
|
||||
uint8_t scsi_id;
|
||||
uint8_t scsi_bus;
|
||||
|
||||
for (c = 0; c < MO_NUM; c++) {
|
||||
for (uint8_t c = 0; c < MO_NUM; c++) {
|
||||
if ((mo_drives[c].bus_type == MO_BUS_ATAPI) || (mo_drives[c].bus_type == MO_BUS_SCSI)) {
|
||||
mo_log("MO hard_reset drive=%d\n", c);
|
||||
|
||||
@@ -2154,10 +2156,10 @@ void
|
||||
mo_close(void)
|
||||
{
|
||||
mo_t *dev;
|
||||
int c;
|
||||
uint8_t scsi_id, scsi_bus;
|
||||
uint8_t scsi_id;
|
||||
uint8_t scsi_bus;
|
||||
|
||||
for (c = 0; c < MO_NUM; c++) {
|
||||
for (uint8_t c = 0; c < MO_NUM; c++) {
|
||||
if (mo_drives[c].bus_type == MO_BUS_SCSI) {
|
||||
scsi_bus = (mo_drives[c].scsi_device_id >> 4) & 0x0f;
|
||||
scsi_id = mo_drives[c].scsi_device_id & 0x0f;
|
||||
|
||||
@@ -460,9 +460,7 @@ zip_log(const char *fmt, ...)
|
||||
int
|
||||
find_zip_for_channel(uint8_t channel)
|
||||
{
|
||||
uint8_t i = 0;
|
||||
|
||||
for (i = 0; i < ZIP_NUM; i++) {
|
||||
for (uint8_t i = 0; i < ZIP_NUM; i++) {
|
||||
if ((zip_drives[i].bus_type == ZIP_BUS_ATAPI) && (zip_drives[i].ide_channel == channel))
|
||||
return i;
|
||||
}
|
||||
@@ -753,9 +751,6 @@ zip_mode_sense(zip_t *dev, uint8_t *buf, uint32_t pos, uint8_t page, uint8_t blo
|
||||
else
|
||||
pf = zip_mode_sense_page_flags;
|
||||
|
||||
int i = 0;
|
||||
int j = 0;
|
||||
|
||||
uint8_t msplen;
|
||||
|
||||
page &= 0x3f;
|
||||
@@ -771,14 +766,14 @@ zip_mode_sense(zip_t *dev, uint8_t *buf, uint32_t pos, uint8_t page, uint8_t blo
|
||||
buf[pos++] = 0;
|
||||
}
|
||||
|
||||
for (i = 0; i < 0x40; i++) {
|
||||
for (uint8_t i = 0; i < 0x40; i++) {
|
||||
if ((page == GPMODE_ALL_PAGES) || (page == i)) {
|
||||
if (pf & (1LL << ((uint64_t) page))) {
|
||||
buf[pos++] = zip_mode_sense_read(dev, page_control, i, 0);
|
||||
msplen = zip_mode_sense_read(dev, page_control, i, 1);
|
||||
buf[pos++] = msplen;
|
||||
zip_log("ZIP %i: MODE SENSE: Page [%02X] length %i\n", dev->id, i, msplen);
|
||||
for (j = 0; j < msplen; j++)
|
||||
for (uint8_t j = 0; j < msplen; j++)
|
||||
buf[pos++] = zip_mode_sense_read(dev, page_control, i, 2 + j);
|
||||
}
|
||||
}
|
||||
@@ -790,7 +785,8 @@ zip_mode_sense(zip_t *dev, uint8_t *buf, uint32_t pos, uint8_t page, uint8_t blo
|
||||
static void
|
||||
zip_update_request_length(zip_t *dev, int len, int block_len)
|
||||
{
|
||||
int bt, min_len = 0;
|
||||
int bt;
|
||||
int min_len = 0;
|
||||
|
||||
dev->max_transfer_len = dev->request_length;
|
||||
|
||||
@@ -865,7 +861,8 @@ zip_bus_speed(zip_t *dev)
|
||||
static void
|
||||
zip_command_common(zip_t *dev)
|
||||
{
|
||||
double bytes_per_second, period;
|
||||
double bytes_per_second;
|
||||
double period;
|
||||
|
||||
dev->status = BUSY_STAT;
|
||||
dev->phase = 1;
|
||||
@@ -1122,7 +1119,6 @@ static int
|
||||
zip_blocks(zip_t *dev, int32_t *len, int first_batch, int out)
|
||||
{
|
||||
*len = 0;
|
||||
int i;
|
||||
|
||||
if (!dev->sector_len) {
|
||||
zip_command_complete(dev);
|
||||
@@ -1139,7 +1135,7 @@ zip_blocks(zip_t *dev, int32_t *len, int first_batch, int out)
|
||||
|
||||
*len = dev->requested_blocks << 9;
|
||||
|
||||
for (i = 0; i < dev->requested_blocks; i++) {
|
||||
for (int i = 0; i < dev->requested_blocks; i++) {
|
||||
if (fseek(dev->drv->f, dev->drv->base + (dev->sector_pos << 9) + (i << 9), SEEK_SET) == 1)
|
||||
break;
|
||||
|
||||
@@ -1355,12 +1351,15 @@ static void
|
||||
zip_command(scsi_common_t *sc, uint8_t *cdb)
|
||||
{
|
||||
zip_t *dev = (zip_t *) sc;
|
||||
int pos = 0, block_desc = 0;
|
||||
int pos = 0;
|
||||
int block_desc = 0;
|
||||
int ret;
|
||||
int32_t len, max_len;
|
||||
int32_t len;
|
||||
int32_t max_len;
|
||||
int32_t alloc_length;
|
||||
uint32_t i = 0;
|
||||
int size_idx, idx = 0;
|
||||
int size_idx;
|
||||
int idx = 0;
|
||||
unsigned preamble_len;
|
||||
int32_t blen = 0;
|
||||
int32_t *BufLen;
|
||||
@@ -2032,18 +2031,25 @@ zip_phase_data_out(scsi_common_t *sc)
|
||||
{
|
||||
zip_t *dev = (zip_t *) sc;
|
||||
|
||||
uint16_t block_desc_len, pos;
|
||||
uint16_t block_desc_len;
|
||||
uint16_t pos;
|
||||
uint16_t param_list_len;
|
||||
|
||||
uint8_t error = 0;
|
||||
uint8_t page, page_len;
|
||||
uint8_t page;
|
||||
uint8_t page_len;
|
||||
|
||||
uint32_t i = 0;
|
||||
|
||||
uint8_t hdr_len, val, old_val, ch;
|
||||
uint8_t hdr_len;
|
||||
uint8_t val;
|
||||
uint8_t old_val;
|
||||
uint8_t ch;
|
||||
|
||||
uint32_t last_to_write = 0;
|
||||
uint32_t c, h, s;
|
||||
uint32_t c;
|
||||
uint32_t h;
|
||||
uint32_t s;
|
||||
|
||||
int len = 0;
|
||||
|
||||
@@ -2325,10 +2331,10 @@ void
|
||||
zip_hard_reset(void)
|
||||
{
|
||||
zip_t *dev;
|
||||
int c;
|
||||
uint8_t scsi_id, scsi_bus;
|
||||
uint8_t scsi_id;
|
||||
uint8_t scsi_bus;
|
||||
|
||||
for (c = 0; c < ZIP_NUM; c++) {
|
||||
for (uint8_t c = 0; c < ZIP_NUM; c++) {
|
||||
if ((zip_drives[c].bus_type == ZIP_BUS_ATAPI) || (zip_drives[c].bus_type == ZIP_BUS_SCSI)) {
|
||||
zip_log("ZIP hard_reset drive=%d\n", c);
|
||||
|
||||
@@ -2375,10 +2381,10 @@ void
|
||||
zip_close(void)
|
||||
{
|
||||
zip_t *dev;
|
||||
int c;
|
||||
uint8_t scsi_bus, scsi_id;
|
||||
uint8_t scsi_bus;
|
||||
uint8_t scsi_id;
|
||||
|
||||
for (c = 0; c < ZIP_NUM; c++) {
|
||||
for (uint8_t c = 0; c < ZIP_NUM; c++) {
|
||||
if (zip_drives[c].bus_type == ZIP_BUS_SCSI) {
|
||||
scsi_bus = (zip_drives[c].scsi_device_id >> 4) & 0x0f;
|
||||
scsi_id = zip_drives[c].scsi_device_id & 0x0f;
|
||||
|
||||
@@ -218,8 +218,6 @@ track_is_xdf(int drive, int side, int track)
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int
|
||||
|
||||
@@ -464,7 +464,7 @@ bit_dedrop(FDI *fdi)
|
||||
static void
|
||||
byte_add(FDI *fdi, uint8_t v)
|
||||
{
|
||||
for (uint8_t i = 7; i >= 0; i--)
|
||||
for (int8_t i = 7; i >= 0; i--)
|
||||
bit_add(fdi, v & (1 << i));
|
||||
}
|
||||
/* add one word */
|
||||
@@ -478,7 +478,7 @@ word_add(FDI *fdi, uint16_t v)
|
||||
static void
|
||||
byte_mfm_add(FDI *fdi, uint8_t v)
|
||||
{
|
||||
for (uint8_t i = 7; i >= 0; i--)
|
||||
for (int8_t i = 7; i >= 0; i--)
|
||||
bit_mfm_add(fdi, v & (1 << i));
|
||||
}
|
||||
/* add multiple bytes and mfm encode them */
|
||||
@@ -492,7 +492,7 @@ bytes_mfm_add(FDI *fdi, uint8_t v, int len)
|
||||
static void
|
||||
word_post_mfm_add(FDI *fdi, uint16_t v)
|
||||
{
|
||||
for (uint8_t i = 14; i >= 0; i -= 2)
|
||||
for (int8_t i = 14; i >= 0; i -= 2)
|
||||
bit_mfm_add(fdi, v & (1 << i));
|
||||
}
|
||||
|
||||
|
||||
@@ -252,7 +252,6 @@ void mtr_init(const char *json_file) {
|
||||
}
|
||||
|
||||
void mtr_shutdown(void) {
|
||||
int i;
|
||||
#ifndef MTR_ENABLED
|
||||
return;
|
||||
#endif
|
||||
@@ -266,7 +265,7 @@ void mtr_shutdown(void) {
|
||||
f = 0;
|
||||
free(event_buffer);
|
||||
event_buffer = 0;
|
||||
for (i = 0; i < STRING_POOL_SIZE; i++) {
|
||||
for (uint8_t i = 0; i < STRING_POOL_SIZE; i++) {
|
||||
if (str_pool[i]) {
|
||||
free(str_pool[i]);
|
||||
str_pool[i] = 0;
|
||||
@@ -275,8 +274,7 @@ void mtr_shutdown(void) {
|
||||
}
|
||||
|
||||
const char *mtr_pool_string(const char *str) {
|
||||
int i;
|
||||
for (i = 0; i < STRING_POOL_SIZE; i++) {
|
||||
for (uint8_t i = 0; i < STRING_POOL_SIZE; i++) {
|
||||
if (!str_pool[i]) {
|
||||
str_pool[i] = (char*)malloc(strlen(str) + 1);
|
||||
strcpy(str_pool[i], str);
|
||||
|
||||
@@ -473,7 +473,9 @@ static int
|
||||
elnkReceiveLocked(void *priv, uint8_t *src, int size)
|
||||
{
|
||||
threec501_t *dev = (threec501_t *) priv;
|
||||
int is_padr = 0, is_bcast = 0, is_mcast = 0;
|
||||
int is_padr = 0;
|
||||
int is_bcast = 0;
|
||||
int is_mcast = 0;
|
||||
bool fLoopback = dev->RcvCmd.adr_match == EL_BCTL_LOOPBACK;
|
||||
|
||||
union {
|
||||
@@ -644,7 +646,7 @@ elnkAsyncTransmit(threec501_t *dev)
|
||||
return;
|
||||
}
|
||||
|
||||
if (((dev->AuxCmd.buf_ctl != EL_BCTL_XMT_RCV) && (dev->AuxCmd.buf_ctl != EL_BCTL_LOOPBACK))) {
|
||||
if ((dev->AuxCmd.buf_ctl != EL_BCTL_XMT_RCV) && (dev->AuxCmd.buf_ctl != EL_BCTL_LOOPBACK)) {
|
||||
#ifdef ENABLE_3COM501_LOG
|
||||
threec501_log("3Com501: Nope, not in xmit-then-receive or loopback state\n");
|
||||
#endif
|
||||
@@ -656,8 +658,8 @@ elnkAsyncTransmit(threec501_t *dev)
|
||||
*/
|
||||
do {
|
||||
/* Don't send anything when the link is down. */
|
||||
if ((!elnkIsLinkUp(dev)
|
||||
&& dev->cLinkDownReported > ELNK_MAX_LINKDOWN_REPORTED))
|
||||
if (!elnkIsLinkUp(dev)
|
||||
&& dev->cLinkDownReported > ELNK_MAX_LINKDOWN_REPORTED)
|
||||
break;
|
||||
|
||||
bool const fLoopback = dev->AuxCmd.buf_ctl == EL_BCTL_LOOPBACK;
|
||||
@@ -925,7 +927,7 @@ threec501_read(uint16_t addr, void *priv)
|
||||
#ifdef ENABLE_3COM501_LOG
|
||||
threec501_log("3Com501: read addr %x, value %x\n", addr & 0x0f, retval);
|
||||
#endif
|
||||
return (retval);
|
||||
return retval;
|
||||
}
|
||||
|
||||
static uint8_t
|
||||
@@ -1130,7 +1132,7 @@ threec501_nic_init(const device_t *info)
|
||||
|
||||
timer_add(&dev->timer_restore, elnkR3TimerRestore, dev, 0);
|
||||
|
||||
return (dev);
|
||||
return dev;
|
||||
}
|
||||
|
||||
static void
|
||||
|
||||
@@ -239,7 +239,7 @@ threec503_nic_lo_read(uint16_t addr, void *priv)
|
||||
break;
|
||||
}
|
||||
|
||||
return (retval);
|
||||
return retval;
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -611,7 +611,7 @@ threec503_nic_init(const device_t *info)
|
||||
/* Attach ourselves to the network module. */
|
||||
dev->dp8390->card = network_attach(dev->dp8390, dev->dp8390->physaddr, dp8390_rx, NULL);
|
||||
|
||||
return (dev);
|
||||
return dev;
|
||||
}
|
||||
|
||||
static void
|
||||
|
||||
@@ -63,13 +63,13 @@ mcast_index(const void *dst)
|
||||
{
|
||||
#define POLYNOMIAL 0x04c11db6
|
||||
uint32_t crc = 0xffffffffL;
|
||||
int carry, i, j;
|
||||
int carry;
|
||||
uint8_t b;
|
||||
uint8_t *ep = (uint8_t *) dst;
|
||||
|
||||
for (i = 6; --i >= 0;) {
|
||||
for (int8_t i = 6; --i >= 0;) {
|
||||
b = *ep++;
|
||||
for (j = 8; --j >= 0;) {
|
||||
for (int8_t j = 8; --j >= 0;) {
|
||||
carry = ((crc & 0x80000000L) ? 1 : 0) ^ (b & 0x01);
|
||||
crc <<= 1;
|
||||
b >>= 1;
|
||||
@@ -93,7 +93,6 @@ mcast_index(const void *dst)
|
||||
uint32_t
|
||||
dp8390_chipmem_read(dp8390_t *dev, uint32_t addr, unsigned int len)
|
||||
{
|
||||
int i;
|
||||
uint32_t retval = 0;
|
||||
|
||||
#ifdef ENABLE_DP8390_LOG
|
||||
@@ -104,7 +103,7 @@ dp8390_chipmem_read(dp8390_t *dev, uint32_t addr, unsigned int len)
|
||||
dp8390_log("DP8390: Chipmem Read Address=%04x\n", addr);
|
||||
|
||||
/* ROM'd MAC address */
|
||||
for (i = 0; i < len; i++) {
|
||||
for (unsigned int i = 0; i < len; i++) {
|
||||
if ((addr >= dev->mem_start) && (addr < dev->mem_end))
|
||||
retval |= (uint32_t) (dev->mem[addr - dev->mem_start]) << (i << 3);
|
||||
else if (addr < dev->macaddr_size)
|
||||
@@ -116,14 +115,12 @@ dp8390_chipmem_read(dp8390_t *dev, uint32_t addr, unsigned int len)
|
||||
addr++;
|
||||
}
|
||||
|
||||
return (retval);
|
||||
return retval;
|
||||
}
|
||||
|
||||
void
|
||||
dp8390_chipmem_write(dp8390_t *dev, uint32_t addr, uint32_t val, unsigned len)
|
||||
{
|
||||
int i;
|
||||
|
||||
#ifdef ENABLE_DP8390_LOG
|
||||
if ((len > 1) && (addr & (len - 1)))
|
||||
dp8390_log("DP8390: unaligned chipmem word write\n");
|
||||
@@ -131,7 +128,7 @@ dp8390_chipmem_write(dp8390_t *dev, uint32_t addr, uint32_t val, unsigned len)
|
||||
|
||||
dp8390_log("DP8390: Chipmem Write Address=%04x\n", addr);
|
||||
|
||||
for (i = 0; i < len; i++) {
|
||||
for (unsigned int i = 0; i < len; i++) {
|
||||
if ((addr < dev->mem_start) || (addr >= dev->mem_end)) {
|
||||
dp8390_log("DP8390: out-of-bounds chipmem write, %04X\n", addr);
|
||||
return;
|
||||
@@ -152,7 +149,7 @@ dp8390_read_cr(dp8390_t *dev)
|
||||
retval = (((dev->CR.pgsel & 0x03) << 6) | ((dev->CR.rdma_cmd & 0x07) << 3) | (dev->CR.tx_packet << 2) | (dev->CR.start << 1) | (dev->CR.stop));
|
||||
dp8390_log("DP8390: read CR returns 0x%02x\n", retval);
|
||||
|
||||
return (retval);
|
||||
return retval;
|
||||
}
|
||||
|
||||
void
|
||||
@@ -270,8 +267,10 @@ dp8390_rx_common(void *priv, uint8_t *buf, int io_len)
|
||||
static uint8_t bcast_addr[6] = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff };
|
||||
uint8_t pkthdr[4];
|
||||
uint8_t *startptr;
|
||||
int pages, avail;
|
||||
int idx, nextpage;
|
||||
int pages;
|
||||
int avail;
|
||||
int idx;
|
||||
int nextpage;
|
||||
int endbytes;
|
||||
|
||||
if (io_len != 60)
|
||||
@@ -427,7 +426,7 @@ dp8390_page0_read(dp8390_t *dev, uint32_t off, unsigned int len)
|
||||
/* encountered with win98 hardware probe */
|
||||
dp8390_log("DP8390: bad length! Page0 read from register 0x%02x, len=%u\n",
|
||||
off, len);
|
||||
return (retval);
|
||||
return retval;
|
||||
}
|
||||
|
||||
switch (off) {
|
||||
@@ -503,7 +502,7 @@ dp8390_page0_read(dp8390_t *dev, uint32_t off, unsigned int len)
|
||||
dp8390_log("DP8390: Page0 read from register 0x%02x, value=0x%02x\n", off,
|
||||
retval);
|
||||
|
||||
return (retval);
|
||||
return retval;
|
||||
}
|
||||
|
||||
void
|
||||
@@ -730,7 +729,7 @@ dp8390_page1_read(dp8390_t *dev, uint32_t off, unsigned int len)
|
||||
default:
|
||||
dp8390_log("DP8390: Page1 read register 0x%02x out of range\n",
|
||||
off);
|
||||
return (0);
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -812,7 +811,7 @@ dp8390_page2_read(dp8390_t *dev, uint32_t off, unsigned int len)
|
||||
case 0x0b:
|
||||
dp8390_log("DP8390: reserved Page2 read - register 0x%02x\n",
|
||||
off);
|
||||
return (0xff);
|
||||
return 0xff;
|
||||
|
||||
case 0x0c: /* RCR */
|
||||
return ((dev->RCR.monitor << 5) | (dev->RCR.promisc << 4) | (dev->RCR.multicast << 3) | (dev->RCR.broadcast << 2) | (dev->RCR.runts_ok << 1) | (dev->RCR.errors_ok));
|
||||
@@ -832,7 +831,7 @@ dp8390_page2_read(dp8390_t *dev, uint32_t off, unsigned int len)
|
||||
break;
|
||||
}
|
||||
|
||||
return (0);
|
||||
return 0;
|
||||
}
|
||||
|
||||
void
|
||||
@@ -931,7 +930,8 @@ dp8390_set_id(dp8390_t *dev, uint8_t id0, uint8_t id1)
|
||||
void
|
||||
dp8390_reset(dp8390_t *dev)
|
||||
{
|
||||
int i, max, shift = 0;
|
||||
int max;
|
||||
int shift = 0;
|
||||
|
||||
if (dev->flags & DP8390_FLAG_EVEN_MAC)
|
||||
shift = 1;
|
||||
@@ -939,7 +939,7 @@ dp8390_reset(dp8390_t *dev)
|
||||
max = 16 << shift;
|
||||
|
||||
/* Initialize the MAC address area by doubling the physical address */
|
||||
for (i = 0; i < max; i++) {
|
||||
for (int i = 0; i < max; i++) {
|
||||
if (i < (6 << shift))
|
||||
dev->macaddr[i] = dev->physaddr[i >> shift];
|
||||
else /* Signature */
|
||||
|
||||
@@ -251,7 +251,7 @@ asic_read(nic_t *dev, uint32_t off, unsigned int len)
|
||||
break;
|
||||
}
|
||||
|
||||
return (retval);
|
||||
return retval;
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -316,7 +316,7 @@ page3_read(nic_t *dev, uint32_t off, unsigned int len)
|
||||
return (dev->_9346cr);
|
||||
|
||||
case 0x3: /* CONFIG0 */
|
||||
return (0x00); /* Cable not BNC */
|
||||
return 0x00; /* Cable not BNC */
|
||||
|
||||
case 0x5: /* CONFIG2 */
|
||||
return (dev->config2 & 0xe0);
|
||||
@@ -329,12 +329,12 @@ page3_read(nic_t *dev, uint32_t off, unsigned int len)
|
||||
|
||||
case 0xe: /* 8029ASID0 */
|
||||
if (dev->board == NE2K_RTL8029AS)
|
||||
return (0x29);
|
||||
return 0x29;
|
||||
break;
|
||||
|
||||
case 0xf: /* 8029ASID1 */
|
||||
if (dev->board == NE2K_RTL8029AS)
|
||||
return (0x80);
|
||||
return 0x80;
|
||||
break;
|
||||
|
||||
default:
|
||||
@@ -342,7 +342,7 @@ page3_read(nic_t *dev, uint32_t off, unsigned int len)
|
||||
}
|
||||
|
||||
nelog(3, "%s: Page3 read register 0x%02x attempted\n", dev->name, off);
|
||||
return (0x00);
|
||||
return 0x00;
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -409,7 +409,7 @@ nic_read(nic_t *dev, uint32_t addr, unsigned len)
|
||||
break;
|
||||
}
|
||||
|
||||
return (retval);
|
||||
return retval;
|
||||
}
|
||||
|
||||
static uint8_t
|
||||
@@ -711,7 +711,7 @@ nic_pci_read(int func, int addr, void *priv)
|
||||
|
||||
nelog(2, "%s: PCI_Read(%d, %04x) = %02x\n", dev->name, func, addr, ret);
|
||||
|
||||
return (ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -1095,7 +1095,7 @@ nic_init(const device_t *info)
|
||||
nelog(1, "%s: %s attached IO=0x%X IRQ=%d\n", dev->name,
|
||||
dev->is_pci ? "PCI" : "ISA", dev->base_address, dev->base_irq);
|
||||
|
||||
return (dev);
|
||||
return dev;
|
||||
}
|
||||
|
||||
static void
|
||||
|
||||
@@ -357,7 +357,7 @@ int
|
||||
net_pcap_prepare(netdev_t *list)
|
||||
{
|
||||
char errbuf[PCAP_ERRBUF_SIZE];
|
||||
pcap_if_t *devlist, *dev;
|
||||
pcap_if_t *devlist;
|
||||
int i = 0;
|
||||
|
||||
/* Try loading the DLL. */
|
||||
@@ -379,7 +379,7 @@ net_pcap_prepare(netdev_t *list)
|
||||
return (-1);
|
||||
}
|
||||
|
||||
for (dev = devlist; dev != NULL; dev = dev->next) {
|
||||
for (pcap_if_t *dev = devlist; dev != NULL; dev = dev->next) {
|
||||
if (i >= (NET_HOST_INTF_MAX - 1))
|
||||
break;
|
||||
|
||||
@@ -405,7 +405,7 @@ net_pcap_prepare(netdev_t *list)
|
||||
/* Release the memory. */
|
||||
f_pcap_freealldevs(devlist);
|
||||
|
||||
return (i);
|
||||
return i;
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
@@ -446,7 +446,8 @@ pcnetIsLinkUp(nic_t *dev)
|
||||
static __inline int
|
||||
pcnetTmdLoad(nic_t *dev, TMD *tmd, uint32_t addr, int fRetIfNotOwn)
|
||||
{
|
||||
uint8_t ownbyte, bytes[4] = { 0, 0, 0, 0 };
|
||||
uint8_t ownbyte;
|
||||
uint8_t bytes[4] = { 0, 0, 0, 0 };
|
||||
uint16_t xda[4];
|
||||
uint32_t xda32[4];
|
||||
|
||||
@@ -539,7 +540,8 @@ pcnetTmdStorePassHost(nic_t *dev, TMD *tmd, uint32_t addr)
|
||||
static __inline int
|
||||
pcnetRmdLoad(nic_t *dev, RMD *rmd, uint32_t addr, int fRetIfNotOwn)
|
||||
{
|
||||
uint8_t ownbyte, bytes[4] = { 0, 0, 0, 0 };
|
||||
uint8_t ownbyte;
|
||||
uint8_t bytes[4] = { 0, 0, 0, 0 };
|
||||
uint16_t rda[4];
|
||||
uint32_t rda32[4];
|
||||
|
||||
@@ -654,10 +656,10 @@ lnc_mchash(const uint8_t *ether_addr)
|
||||
{
|
||||
#define LNC_POLYNOMIAL 0xEDB88320UL
|
||||
uint32_t crc = 0xFFFFFFFF;
|
||||
int idx, bit;
|
||||
int bit;
|
||||
uint8_t data;
|
||||
|
||||
for (idx = 0; idx < ETHER_ADDR_LEN; idx++) {
|
||||
for (uint8_t idx = 0; idx < ETHER_ADDR_LEN; idx++) {
|
||||
for (data = *ether_addr++, bit = 0; bit < MULTICAST_FILTER_LEN; bit++) {
|
||||
crc = (crc >> 1) ^ (((crc ^ data) & 1) ? LNC_POLYNOMIAL : 0);
|
||||
data >>= 1;
|
||||
@@ -915,7 +917,6 @@ pcnetUpdateIrq(nic_t *dev)
|
||||
static void
|
||||
pcnetInit(nic_t *dev)
|
||||
{
|
||||
int i;
|
||||
pcnet_log(3, "%s: pcnetInit: init_addr=%#010x\n", dev->name, PHYSADDR(dev, CSR_IADR(dev)));
|
||||
|
||||
/** @todo Documentation says that RCVRL and XMTRL are stored as two's complement!
|
||||
@@ -956,7 +957,7 @@ pcnetInit(nic_t *dev)
|
||||
#undef PCNET_INIT
|
||||
|
||||
size_t cbRxBuffers = 0;
|
||||
for (i = CSR_RCVRL(dev); i >= 1; i--) {
|
||||
for (int i = CSR_RCVRL(dev); i >= 1; i--) {
|
||||
RMD rmd;
|
||||
uint32_t rdaddr = PHYSADDR(dev, pcnetRdraAddr(dev, i));
|
||||
|
||||
@@ -1200,8 +1201,10 @@ pcnetCalcPacketLen(nic_t *dev, int cb)
|
||||
static int
|
||||
pcnetReceiveNoSync(void *priv, uint8_t *buf, int size)
|
||||
{
|
||||
nic_t *dev = (nic_t *) priv;
|
||||
int is_padr = 0, is_bcast = 0, is_ladr = 0;
|
||||
nic_t *dev = (nic_t *) priv;
|
||||
int is_padr = 0;
|
||||
int is_bcast = 0;
|
||||
int is_ladr = 0;
|
||||
uint32_t iRxDesc;
|
||||
int cbPacket;
|
||||
uint8_t buf1[60];
|
||||
@@ -1266,7 +1269,8 @@ pcnetReceiveNoSync(void *priv, uint8_t *buf, int size)
|
||||
uint8_t *src = &dev->abRecvBuf[8];
|
||||
uint32_t crda = CSR_CRDA(dev);
|
||||
uint32_t next_crda;
|
||||
RMD rmd, next_rmd;
|
||||
RMD rmd;
|
||||
RMD next_rmd;
|
||||
|
||||
/*
|
||||
* Ethernet framing considers these two octets to be
|
||||
@@ -1473,8 +1477,8 @@ pcnetAsyncTransmit(nic_t *dev)
|
||||
break;
|
||||
|
||||
/* Don't continue sending packets when the link is down. */
|
||||
if ((!pcnetIsLinkUp(dev)
|
||||
&& dev->cLinkDownReported > PCNET_MAX_LINKDOWN_REPORTED))
|
||||
if (!pcnetIsLinkUp(dev)
|
||||
&& dev->cLinkDownReported > PCNET_MAX_LINKDOWN_REPORTED)
|
||||
break;
|
||||
|
||||
pcnet_log(3, "%s: TMDLOAD %#010x\n", dev->name, PHYSADDR(dev, CSR_CXDA(dev)));
|
||||
@@ -1488,7 +1492,7 @@ pcnetAsyncTransmit(nic_t *dev)
|
||||
const int cb = 4096 - tmd.tmd1.bcnt;
|
||||
pcnet_log(3, "%s: pcnetAsyncTransmit: stp&enp: cb=%d xmtrc=%#x\n", dev->name, cb, CSR_XMTRC(dev));
|
||||
|
||||
if ((pcnetIsLinkUp(dev) || fLoopback)) {
|
||||
if (pcnetIsLinkUp(dev) || fLoopback) {
|
||||
|
||||
/* From the manual: ``A zero length buffer is acceptable as
|
||||
* long as it is not the last buffer in a chain (STP = 0 and
|
||||
@@ -2024,7 +2028,10 @@ static uint16_t
|
||||
pcnet_mii_readw(nic_t *dev, uint16_t miiaddr)
|
||||
{
|
||||
uint16_t val;
|
||||
int autoneg, duplex, fast, isolate;
|
||||
int autoneg;
|
||||
int duplex;
|
||||
int fast;
|
||||
int isolate;
|
||||
|
||||
/* If the DANAS (BCR32.7) bit is set, the MAC does not do any
|
||||
* auto-negotiation and the PHY must be set up explicitly. DANAS
|
||||
@@ -2238,7 +2245,7 @@ pcnet_byte_read(nic_t *dev, uint32_t addr)
|
||||
|
||||
pcnet_log(3, "%s: pcnet_word_read: addr = %04x, val = %04x, DWIO not set = %04x\n", dev->name, addr & 0x0f, val, !BCR_DWIO(dev));
|
||||
|
||||
return (val);
|
||||
return val;
|
||||
}
|
||||
|
||||
static uint16_t
|
||||
@@ -2276,7 +2283,7 @@ pcnet_word_read(nic_t *dev, uint32_t addr)
|
||||
skip_update_irq:
|
||||
pcnet_log(3, "%s: pcnet_word_read: addr = %04x, val = %04x, DWIO not set = %04x\n", dev->name, addr & 0x0f, val, !BCR_DWIO(dev));
|
||||
|
||||
return (val);
|
||||
return val;
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -2300,7 +2307,7 @@ pcnet_dword_write(nic_t *dev, uint32_t addr, uint32_t val)
|
||||
/* switch device to dword i/o mode */
|
||||
pcnet_bcr_writew(dev, BCR_BSBC, pcnet_bcr_readw(dev, BCR_BSBC) | 0x0080);
|
||||
pcnet_log(3, "%s: device switched into dword i/o mode\n", dev->name);
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
static uint32_t
|
||||
@@ -2334,7 +2341,7 @@ pcnet_dword_read(nic_t *dev, uint32_t addr)
|
||||
|
||||
skip_update_irq:
|
||||
pcnet_log(3, "%s: Read Long mode, addr = %08x, val = %08x\n", dev->name, addr, val);
|
||||
return (val);
|
||||
return val;
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -2424,7 +2431,7 @@ pcnet_read(nic_t *dev, uint32_t addr, int len)
|
||||
}
|
||||
|
||||
pcnet_log(3, "%s: value in read - %08x\n", dev->name, retval);
|
||||
return (retval);
|
||||
return retval;
|
||||
}
|
||||
|
||||
static uint8_t
|
||||
@@ -2682,7 +2689,7 @@ pcnet_pci_read(int func, int addr, void *p)
|
||||
return 0xff;
|
||||
}
|
||||
|
||||
return (0);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -3005,7 +3012,7 @@ pcnet_init(const device_t *info)
|
||||
|
||||
timer_add(&dev->timer_restore, pcnetTimerRestore, dev, 0);
|
||||
|
||||
return (dev);
|
||||
return dev;
|
||||
}
|
||||
|
||||
static void
|
||||
|
||||
@@ -416,7 +416,10 @@ net_slirp_init(const netcard_t *card, const uint8_t *mac_addr, void *priv, char
|
||||
}
|
||||
|
||||
/* Set up port forwarding. */
|
||||
int udp, external, internal, i = 0;
|
||||
int udp;
|
||||
int i = 0;
|
||||
int external;
|
||||
int internal;
|
||||
char category[32];
|
||||
snprintf(category, sizeof(category), "SLiRP Port Forwarding #%d", card->card_num + 1);
|
||||
char key[20];
|
||||
|
||||
@@ -253,7 +253,6 @@ void net_vde_error(char *errbuf, const char *message) {
|
||||
//-
|
||||
void *net_vde_init(const netcard_t *card, const uint8_t *mac_addr, void *priv, char *netdrv_errbuf) {
|
||||
struct vde_open_args vde_args;
|
||||
int i;
|
||||
|
||||
char *socket_name = (char *) priv;
|
||||
|
||||
@@ -288,7 +287,7 @@ void *net_vde_init(const netcard_t *card, const uint8_t *mac_addr, void *priv, c
|
||||
}
|
||||
vde_log("VDE: Socket opened (%s).\n", socket_name);
|
||||
|
||||
for(i=0; i < VDE_PKT_BATCH; i++) {
|
||||
for(uint8_t i = 0; i < VDE_PKT_BATCH; i++) {
|
||||
vde->pktv[i].data = calloc(1, NET_MAX_FRAME);
|
||||
}
|
||||
vde->pkt.data = calloc(1,NET_MAX_FRAME);
|
||||
|
||||
@@ -194,9 +194,9 @@ wd_ram_write(uint32_t addr, uint8_t val, void *priv)
|
||||
static int
|
||||
wd_get_irq_index(wd_t *dev)
|
||||
{
|
||||
uint8_t i, irq = 255;
|
||||
uint8_t irq = 255;
|
||||
|
||||
for (i = 0; i < 4; i++) {
|
||||
for (uint8_t i = 0; i < 4; i++) {
|
||||
if (we_int_table[i] == dev->irq)
|
||||
irq = i;
|
||||
}
|
||||
@@ -285,7 +285,7 @@ wd_smc_read(wd_t *dev, uint32_t off)
|
||||
wdlog("%s: ASIC read addr=0x%02x, value=0x%04x\n",
|
||||
dev->name, (unsigned) off, (unsigned) retval);
|
||||
|
||||
return (retval);
|
||||
return retval;
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -423,7 +423,7 @@ wd_read(uint16_t addr, void *priv, int len)
|
||||
}
|
||||
}
|
||||
|
||||
return (retval);
|
||||
return retval;
|
||||
}
|
||||
|
||||
static uint8_t
|
||||
@@ -776,7 +776,7 @@ wd_init(const device_t *info)
|
||||
dev->base_address, dev->irq, dev->ram_addr);
|
||||
}
|
||||
|
||||
return (dev);
|
||||
return dev;
|
||||
}
|
||||
|
||||
static void
|
||||
|
||||
@@ -552,15 +552,13 @@ network_close(void)
|
||||
void
|
||||
network_reset(void)
|
||||
{
|
||||
int i = -1;
|
||||
|
||||
ui_sb_update_icon(SB_NETWORK, 0);
|
||||
|
||||
#if defined ENABLE_NETWORK_LOG && !defined(_WIN32)
|
||||
network_dump_mutex = thread_create_mutex();
|
||||
#endif
|
||||
|
||||
for (i = 0; i < NET_CARD_MAX; i++) {
|
||||
for (uint8_t i = 0; i < NET_CARD_MAX; i++) {
|
||||
if (!network_dev_available(i)) {
|
||||
continue;
|
||||
}
|
||||
@@ -656,15 +654,13 @@ network_is_connected(int id)
|
||||
int
|
||||
network_dev_to_id(char *devname)
|
||||
{
|
||||
int i = 0;
|
||||
|
||||
for (i = 0; i < network_ndev; i++) {
|
||||
for (int i = 0; i < network_ndev; i++) {
|
||||
if (!strcmp((char *) network_devs[i].device, devname)) {
|
||||
return (i);
|
||||
return i;
|
||||
}
|
||||
}
|
||||
|
||||
return (-1);
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* UI */
|
||||
@@ -673,7 +669,7 @@ network_dev_available(int id)
|
||||
{
|
||||
int available = (net_cards_conf[id].device_num > 0);
|
||||
|
||||
if ((net_cards_conf[id].net_type == NET_TYPE_PCAP && (network_dev_to_id(net_cards_conf[id].host_dev_name) <= 0)))
|
||||
if (net_cards_conf[id].net_type == NET_TYPE_PCAP && (network_dev_to_id(net_cards_conf[id].host_dev_name) <= 0))
|
||||
available = 0;
|
||||
|
||||
// TODO: Handle VDE device
|
||||
@@ -700,7 +696,7 @@ network_card_available(int card)
|
||||
if (net_cards[card])
|
||||
return (device_available(net_cards[card]));
|
||||
|
||||
return (1);
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* UI */
|
||||
@@ -715,7 +711,7 @@ int
|
||||
network_card_has_config(int card)
|
||||
{
|
||||
if (!net_cards[card])
|
||||
return (0);
|
||||
return 0;
|
||||
|
||||
return (device_has_config(net_cards[card]) ? 1 : 0);
|
||||
}
|
||||
@@ -735,9 +731,9 @@ network_card_get_from_internal_name(char *s)
|
||||
|
||||
while (net_cards[c] != NULL) {
|
||||
if (!strcmp((char *) net_cards[c]->internal_name, s))
|
||||
return (c);
|
||||
return c;
|
||||
c++;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -87,7 +87,7 @@ static int
|
||||
get_devlist(capdev_t *list)
|
||||
{
|
||||
char errbuf[PCAP_ERRBUF_SIZE];
|
||||
pcap_if_t *devlist, *dev;
|
||||
pcap_if_t *devlist;
|
||||
int i = 0;
|
||||
|
||||
/* Retrieve the device list from the local machine */
|
||||
@@ -96,7 +96,7 @@ get_devlist(capdev_t *list)
|
||||
return (-1);
|
||||
}
|
||||
|
||||
for (dev = devlist; dev != NULL; dev = dev->next) {
|
||||
for (pcap_if_t *dev = devlist; dev != NULL; dev = dev->next) {
|
||||
strcpy(list->device, dev->name);
|
||||
if (dev->description)
|
||||
strcpy(list->description, dev->description);
|
||||
@@ -109,7 +109,7 @@ get_devlist(capdev_t *list)
|
||||
/* Release the memory. */
|
||||
f_pcap_freealldevs(devlist);
|
||||
|
||||
return (i);
|
||||
return i;
|
||||
}
|
||||
|
||||
/* Simple HEXDUMP routine for raw data. */
|
||||
@@ -127,7 +127,7 @@ hex_dump(unsigned char *bufp, int len)
|
||||
printf("%04lx %02x", addr, c);
|
||||
else
|
||||
printf(" %02x", c);
|
||||
asci[(addr & 15)] = (uint8_t) isprint(c) ? c : '.';
|
||||
asci[addr & 15] = (uint8_t) isprint(c) ? c : '.';
|
||||
if ((++addr % 16) == 0) {
|
||||
asci[16] = '\0';
|
||||
printf(" | %s |\n", asci);
|
||||
@@ -137,7 +137,7 @@ hex_dump(unsigned char *bufp, int len)
|
||||
if (addr % 16) {
|
||||
while (addr % 16) {
|
||||
printf(" ");
|
||||
asci[(addr & 15)] = ' ';
|
||||
asci[addr & 15] = ' ';
|
||||
addr++;
|
||||
}
|
||||
asci[16] = '\0';
|
||||
@@ -166,7 +166,7 @@ eth_prhdr(unsigned char *ptr)
|
||||
type = (ptr[12] << 8) | ptr[13];
|
||||
printf(" type %04x\n", type);
|
||||
|
||||
return (14);
|
||||
return 14;
|
||||
}
|
||||
|
||||
/* Capture packets from the network, and print them. */
|
||||
@@ -189,7 +189,7 @@ start_cap(char *dev)
|
||||
temp);
|
||||
if (pcap == NULL) {
|
||||
fprintf(stderr, "Pcap: open_live(%s): %s\n", dev, temp);
|
||||
return (2);
|
||||
return 2;
|
||||
}
|
||||
|
||||
printf("Listening on '%s'..\n", dev);
|
||||
@@ -217,19 +217,17 @@ start_cap(char *dev)
|
||||
/* All done, close up. */
|
||||
f_pcap_close(pcap);
|
||||
|
||||
return (0);
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* Show a list of available network interfaces. */
|
||||
static void
|
||||
show_devs(capdev_t *list, int num)
|
||||
{
|
||||
int i;
|
||||
|
||||
if (num > 0) {
|
||||
printf("Available network interfaces:\n\n");
|
||||
|
||||
for (i = 0; i < num; i++) {
|
||||
for (int i = 0; i < num; i++) {
|
||||
printf(" %d - %s\n", i + 1, list->device);
|
||||
if (list->description[0] != '\0')
|
||||
printf(" (%s)\n", list->description);
|
||||
@@ -247,7 +245,8 @@ int
|
||||
main(int argc, char **argv)
|
||||
{
|
||||
capdev_t interfaces[32];
|
||||
int numdev, i;
|
||||
int numdev;
|
||||
int i;
|
||||
|
||||
/* Try loading the DLL. */
|
||||
#ifdef _WIN32
|
||||
@@ -263,7 +262,7 @@ main(int argc, char **argv)
|
||||
#else
|
||||
fprintf(stderr, "Unable to load libpcap.so !\n");
|
||||
#endif
|
||||
return (1);
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* Get the list. */
|
||||
@@ -275,7 +274,7 @@ main(int argc, char **argv)
|
||||
|
||||
dynld_close(pcap_handle);
|
||||
|
||||
return (numdev);
|
||||
return numdev;
|
||||
}
|
||||
|
||||
/* Assume argument to be the interface number to listen on. */
|
||||
@@ -285,7 +284,7 @@ main(int argc, char **argv)
|
||||
|
||||
dynld_close(pcap_handle);
|
||||
|
||||
return (1);
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* Looks good, go and listen.. */
|
||||
@@ -293,5 +292,5 @@ main(int argc, char **argv)
|
||||
|
||||
dynld_close(pcap_handle);
|
||||
|
||||
return (i);
|
||||
return i;
|
||||
}
|
||||
|
||||
@@ -787,7 +787,6 @@ pic_irq_ack(void)
|
||||
/* If we are on AT, IRQ 2 is pending, and we cannot find a pending IRQ on PIC 2, fatal out. */
|
||||
fatal("IRQ %i pending on AT without a pending IRQ on PIC %i (normal)\n", pic.interrupt, pic.interrupt);
|
||||
exit(-1);
|
||||
return -1;
|
||||
}
|
||||
|
||||
pic.interrupt |= 0x40; /* Mark slave pending. */
|
||||
@@ -818,7 +817,6 @@ picinterrupt(void)
|
||||
/* If we are on AT, IRQ 2 is pending, and we cannot find a pending IRQ on PIC 2, fatal out. */
|
||||
fatal("IRQ %i pending on AT without a pending IRQ on PIC %i (normal)\n", pic.interrupt, pic.interrupt);
|
||||
exit(-1);
|
||||
return -1;
|
||||
}
|
||||
|
||||
pic.interrupt |= 0x40; /* Mark slave pending. */
|
||||
|
||||
@@ -787,7 +787,6 @@ process_char(escp_t *dev, uint8_t ch)
|
||||
case 0x2e:
|
||||
fatal("ESC/P: Print Raster Graphics (2E) command is not implemented.\nTerminating the emulator to avoid endless PNG generation.\n");
|
||||
exit(-1);
|
||||
return 1;
|
||||
|
||||
default:
|
||||
escp_log("ESC/P: Unknown command ESC %c (0x%02x). Unable to skip parameters.\n",
|
||||
@@ -1561,11 +1560,9 @@ process_char(escp_t *dev, uint8_t ch)
|
||||
return 1;
|
||||
|
||||
default:
|
||||
/* This is a printable character -> print it. */
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* This is a printable character -> print it. */
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void
|
||||
|
||||
@@ -60,7 +60,7 @@ D3D9Renderer::finalize()
|
||||
if (d3d9) {
|
||||
d3d9->Release();
|
||||
d3d9 = nullptr;
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
@@ -113,7 +113,8 @@ void
|
||||
D3D9Renderer::paintEvent(QPaintEvent *event)
|
||||
{
|
||||
IDirect3DSurface9 *backbuffer = nullptr;
|
||||
RECT srcRect, dstRect;
|
||||
RECT srcRect;
|
||||
RECT dstRect;
|
||||
HRESULT result = d3d9dev->GetBackBuffer(0, 0, D3DBACKBUFFER_TYPE_MONO, &backbuffer);
|
||||
|
||||
if (FAILED(result)) {
|
||||
|
||||
@@ -36,7 +36,8 @@ private:
|
||||
IDirect3DDevice9Ex *d3d9dev = nullptr;
|
||||
IDirect3DSurface9 *d3d9surface = nullptr;
|
||||
|
||||
std::atomic<bool> surfaceInUse { false }, finalized { false };
|
||||
std::atomic<bool> surfaceInUse { false };
|
||||
std::atomic<bool> finalized { false };
|
||||
bool alreadyInitialized = false;
|
||||
int m_monitor_index = 0;
|
||||
};
|
||||
|
||||
@@ -66,7 +66,8 @@ DeviceConfig::~DeviceConfig()
|
||||
static QStringList
|
||||
EnumerateSerialDevices()
|
||||
{
|
||||
QStringList serialDevices, ttyEntries;
|
||||
QStringList serialDevices;
|
||||
QStringList ttyEntries;
|
||||
QByteArray devstr(1024, 0);
|
||||
#ifdef Q_OS_LINUX
|
||||
QDir class_dir("/sys/class/tty/");
|
||||
@@ -108,7 +109,9 @@ DeviceConfig::ConfigureDevice(const _device_ *device, int instance, Settings *se
|
||||
{
|
||||
DeviceConfig dc(settings);
|
||||
dc.setWindowTitle(QString("%1 Device Configuration").arg(device->name));
|
||||
int c, d, p, q;
|
||||
int c;
|
||||
int p;
|
||||
int q;
|
||||
|
||||
device_context_t device_context;
|
||||
device_set_context(&device_context, device, instance);
|
||||
@@ -216,7 +219,7 @@ DeviceConfig::ConfigureDevice(const _device_ *device, int instance, Settings *se
|
||||
c = q = 0;
|
||||
for (auto *bios = config->bios; (bios != nullptr) && (bios->name != nullptr) && (strlen(bios->name) > 0); ++bios) {
|
||||
p = 0;
|
||||
for (d = 0; d < bios->files_no; d++)
|
||||
for (int d = 0; d < bios->files_no; d++)
|
||||
p += !!rom_present(const_cast<char *>(bios->files[d]));
|
||||
if (p == bios->files_no) {
|
||||
int row = Models::AddEntry(model, bios->name, q);
|
||||
|
||||
@@ -75,7 +75,7 @@ HarddiskDialog::HarddiskDialog(bool existing, QWidget *parent)
|
||||
uint64_t size = ((uint64_t) hdd_table[i][0]) * hdd_table[i][1] * hdd_table[i][2];
|
||||
uint32_t size_mb = size >> 11LL;
|
||||
// QString text = QString("%1 MiB (CHS: %2, %3, %4)").arg(size_mb).arg(hdd_table[i][0]).arg(hdd_table[i][1]).arg(hdd_table[i][2]);
|
||||
QString text = QString::asprintf(tr("%u MB (CHS: %i, %i, %i)").toUtf8().constData(), (size_mb), (hdd_table[i][0]), (hdd_table[i][1]), (hdd_table[i][2]));
|
||||
QString text = QString::asprintf(tr("%u MB (CHS: %i, %i, %i)").toUtf8().constData(), size_mb, (hdd_table[i][0]), (hdd_table[i][1]), (hdd_table[i][2]));
|
||||
Models::AddEntry(model, text, i);
|
||||
}
|
||||
Models::AddEntry(model, tr("Custom..."), 127);
|
||||
@@ -312,7 +312,7 @@ HarddiskDialog::onCreateNewFile()
|
||||
ui->progressBar->setEnabled(true);
|
||||
setResult(QDialog::Rejected);
|
||||
quint64 size = ui->lineEditSize->text().toULongLong() << 20U;
|
||||
if (size > 0x1FFFFFFE00ll) {
|
||||
if (size > 0x1FFFFFFE00LL) {
|
||||
QMessageBox::critical(this, tr("Disk image too large"), tr("Disk images cannot be larger than 127 GB."));
|
||||
return;
|
||||
}
|
||||
@@ -357,7 +357,7 @@ HarddiskDialog::onCreateNewFile()
|
||||
if (img_format == IMG_FMT_HDI) { /* HDI file */
|
||||
QDataStream stream(&file);
|
||||
stream.setByteOrder(QDataStream::LittleEndian);
|
||||
if (size >= 0x100000000ll) {
|
||||
if (size >= 0x100000000LL) {
|
||||
QMessageBox::critical(this, tr("Disk image too large"), tr("HDI disk images cannot be larger than 4 GB."));
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -141,7 +141,8 @@ HardwareRenderer::paintGL()
|
||||
{
|
||||
m_context->makeCurrent(this);
|
||||
glClear(GL_COLOR_BUFFER_BIT);
|
||||
QVector<QVector2D> verts, texcoords;
|
||||
QVector<QVector2D> verts;
|
||||
QVector<QVector2D> texcoords;
|
||||
QMatrix4x4 mat;
|
||||
mat.setToIdentity();
|
||||
mat.ortho(QRectF(0, 0, (qreal) width(), (qreal) height()));
|
||||
|
||||
@@ -355,15 +355,14 @@ static int
|
||||
hdd_count(int bus)
|
||||
{
|
||||
int c = 0;
|
||||
int i;
|
||||
|
||||
for (i = 0; i < HDD_NUM; i++) {
|
||||
for (uint8_t i = 0; i < HDD_NUM; i++) {
|
||||
if (hdd[i].bus == bus) {
|
||||
c++;
|
||||
}
|
||||
}
|
||||
|
||||
return (c);
|
||||
return c;
|
||||
}
|
||||
|
||||
void
|
||||
|
||||
@@ -86,8 +86,10 @@ void qt_set_sequence_auto_mnemonic(bool b);
|
||||
void
|
||||
main_thread_fn()
|
||||
{
|
||||
uint64_t old_time, new_time;
|
||||
int drawits, frames;
|
||||
uint64_t old_time;
|
||||
uint64_t new_time;
|
||||
int drawits;
|
||||
int frames;
|
||||
|
||||
QThread::currentThread()->setPriority(QThread::HighestPriority);
|
||||
framecountx = 0;
|
||||
|
||||
@@ -48,7 +48,9 @@ extern "C" {
|
||||
#include <86box/machine.h>
|
||||
#include <86box/vid_ega.h>
|
||||
#include <86box/version.h>
|
||||
//#include <86box/acpi.h> /* Requires timer.h include, which conflicts with Qt headers */
|
||||
#if 0
|
||||
#include <86box/acpi.h> /* Requires timer.h include, which conflicts with Qt headers */
|
||||
#endif
|
||||
extern atomic_int acpi_pwrbut_pressed;
|
||||
extern int acpi_enabled;
|
||||
|
||||
@@ -413,19 +415,19 @@ MainWindow::MainWindow(QWidget *parent)
|
||||
newVidApi = RendererStack::Renderer::Software;
|
||||
break;
|
||||
case 1:
|
||||
newVidApi = (RendererStack::Renderer::OpenGL);
|
||||
newVidApi = RendererStack::Renderer::OpenGL;
|
||||
break;
|
||||
case 2:
|
||||
newVidApi = (RendererStack::Renderer::OpenGLES);
|
||||
newVidApi = RendererStack::Renderer::OpenGLES;
|
||||
break;
|
||||
case 3:
|
||||
newVidApi = (RendererStack::Renderer::OpenGL3);
|
||||
newVidApi = RendererStack::Renderer::OpenGL3;
|
||||
break;
|
||||
case 4:
|
||||
newVidApi = (RendererStack::Renderer::Vulkan);
|
||||
newVidApi = RendererStack::Renderer::Vulkan;
|
||||
break;
|
||||
case 5:
|
||||
newVidApi = (RendererStack::Renderer::Direct3D9);
|
||||
newVidApi = RendererStack::Renderer::Direct3D9;
|
||||
break;
|
||||
#ifdef USE_VNC
|
||||
case 6:
|
||||
|
||||
@@ -241,7 +241,7 @@ MediaHistoryManager::addImageToHistory(int index, ui::MediaType type, const QStr
|
||||
}
|
||||
|
||||
// Pop any extras
|
||||
if ((device_history.size() > MAX_PREV_IMAGES)) {
|
||||
if (device_history.size() > MAX_PREV_IMAGES) {
|
||||
device_history.pop_back();
|
||||
}
|
||||
|
||||
|
||||
@@ -90,7 +90,8 @@ private:
|
||||
[[nodiscard]] const master_list_t &getMasterList() const;
|
||||
void setMasterList(const master_list_t &masterList);
|
||||
|
||||
device_index_list_t index_list, empty_device_index_list;
|
||||
device_index_list_t index_list;
|
||||
device_index_list_t empty_device_index_list;
|
||||
|
||||
// Return a blank, initialized image history list
|
||||
master_list_t &blankImageHistory(master_list_t &initialized_master_list) const;
|
||||
|
||||
@@ -61,10 +61,12 @@ struct disk_size_t {
|
||||
|
||||
static const disk_size_t disk_sizes[14] = {
|
||||
// clang-format off
|
||||
// { 1, 1, 2, 1, 1, 77, 26, 0, 0, 4, 2, 6, 68 }, /* 250k 8" */
|
||||
// { 1, 2, 2, 1, 1, 77, 26, 0, 0, 4, 2, 6, 68 }, /* 500k 8" */
|
||||
// { 1, 1, 2, 1, 1, 77, 8, 3, 0, 1, 2, 2, 192 }, /* 616k 8" */
|
||||
// { 1, 2, 0, 1, 1, 77, 8, 3, 0, 1, 2, 2, 192 }, /* 1232k 8" */
|
||||
#if 0
|
||||
{ 1, 1, 2, 1, 1, 77, 26, 0, 0, 4, 2, 6, 68 }, /* 250k 8" */
|
||||
{ 1, 2, 2, 1, 1, 77, 26, 0, 0, 4, 2, 6, 68 }, /* 500k 8" */
|
||||
{ 1, 1, 2, 1, 1, 77, 8, 3, 0, 1, 2, 2, 192 }, /* 616k 8" */
|
||||
{ 1, 2, 0, 1, 1, 77, 8, 3, 0, 1, 2, 2, 192 }, /* 1232k 8" */
|
||||
#endif
|
||||
{ 0, 1, 2, 1, 0, 40, 8, 2, 0xfe, 2, 2, 1, 64 }, /* 160k */
|
||||
{ 0, 1, 2, 1, 0, 40, 9, 2, 0xfc, 2, 2, 1, 64 }, /* 180k */
|
||||
{ 0, 2, 2, 1, 0, 40, 8, 2, 0xff, 2, 2, 1, 112 }, /* 320k */
|
||||
@@ -79,8 +81,10 @@ static const disk_size_t disk_sizes[14] = {
|
||||
{ 2, 2, 3, 1, 0, 80, 36, 2, 0xf0, 2, 2, 9, 240 }, /* 2.88M */
|
||||
{ 0, 64, 0, 0, 0, 96, 32, 2, 0, 0, 0, 0, 0 }, /* ZIP 100 */
|
||||
{ 0, 64, 0, 0, 0, 239, 32, 2, 0, 0, 0, 0, 0 }, /* ZIP 250 */
|
||||
// { 0, 8, 0, 0, 0, 963, 32, 2, 0, 0, 0, 0, 0 }, /* LS-120 */
|
||||
// { 0, 32, 0, 0, 0, 262, 56, 2, 0, 0, 0, 0, 0 } /* LS-240 */
|
||||
#if 0
|
||||
{ 0, 8, 0, 0, 0, 963, 32, 2, 0, 0, 0, 0, 0 }, /* LS-120 */
|
||||
{ 0, 32, 0, 0, 0, 262, 56, 2, 0, 0, 0, 0, 0 } /* LS-240 */
|
||||
#endif
|
||||
// clang-format on
|
||||
};
|
||||
|
||||
@@ -264,7 +268,8 @@ NewFloppyDialog::create86f(const QString &filename, const disk_size_t &disk_size
|
||||
uint32_t index_hole_pos = 0;
|
||||
uint32_t tarray[512];
|
||||
uint32_t array_size;
|
||||
uint32_t track_base, track_size;
|
||||
uint32_t track_base;
|
||||
uint32_t track_size;
|
||||
int i;
|
||||
uint32_t shift = 0;
|
||||
|
||||
@@ -644,11 +649,13 @@ bool
|
||||
NewFloppyDialog::createMoSectorImage(const QString &filename, int8_t disk_size, FileType type, QProgressDialog &pbar)
|
||||
{
|
||||
const mo_type_t *dp = &mo_types[disk_size];
|
||||
uint32_t total_size = 0, total_size2;
|
||||
uint32_t total_size = 0;
|
||||
uint32_t total_size2;
|
||||
uint32_t total_sectors = 0;
|
||||
uint32_t sector_bytes = 0;
|
||||
uint16_t base = 0x1000;
|
||||
uint32_t pbar_max = 0, blocks_num;
|
||||
uint32_t pbar_max = 0;
|
||||
uint32_t blocks_num;
|
||||
|
||||
QFile file(filename);
|
||||
if (!file.open(QIODevice::WriteOnly)) {
|
||||
|
||||
@@ -48,7 +48,9 @@
|
||||
# include <sys/mman.h>
|
||||
#endif
|
||||
|
||||
// static QByteArray buf;
|
||||
#if 0
|
||||
static QByteArray buf;
|
||||
#endif
|
||||
extern QElapsedTimer elapsed_timer;
|
||||
extern MainWindow *main_window;
|
||||
QElapsedTimer elapsed_timer;
|
||||
@@ -145,7 +147,9 @@ void
|
||||
do_stop(void)
|
||||
{
|
||||
cpu_thread_run = 0;
|
||||
// main_window->close();
|
||||
#if 0
|
||||
main_window->close();
|
||||
#endif
|
||||
}
|
||||
|
||||
void
|
||||
@@ -249,7 +253,7 @@ path_get_filename(char *s)
|
||||
c--;
|
||||
}
|
||||
|
||||
return (s);
|
||||
return s;
|
||||
#else
|
||||
auto idx = QByteArray::fromRawData(s, strlen(s)).lastIndexOf(QDir::separator().toLatin1());
|
||||
if (idx >= 0) {
|
||||
@@ -353,7 +357,8 @@ void
|
||||
plat_pause(int p)
|
||||
{
|
||||
static wchar_t oldtitle[512];
|
||||
wchar_t title[1024], paused_msg[512];
|
||||
wchar_t title[1024];
|
||||
wchar_t paused_msg[512];
|
||||
|
||||
if (p == dopause) {
|
||||
#ifdef Q_OS_WINDOWS
|
||||
|
||||
@@ -55,7 +55,11 @@ RendererCommon::onResize(int width, int height)
|
||||
destination.setRect(0, 0, width, height);
|
||||
return;
|
||||
}
|
||||
double dx, dy, dw, dh, gsr;
|
||||
double dx;
|
||||
double dy;
|
||||
double dw;
|
||||
double dh;
|
||||
double gsr;
|
||||
|
||||
double hw = width;
|
||||
double hh = height;
|
||||
|
||||
@@ -41,7 +41,8 @@ public:
|
||||
protected:
|
||||
bool eventDelegate(QEvent *event, bool &result);
|
||||
|
||||
QRect source { 0, 0, 0, 0 }, destination;
|
||||
QRect source { 0, 0, 0, 0 };
|
||||
QRect destination;
|
||||
QWidget *parentWidget { nullptr };
|
||||
|
||||
std::vector<std::atomic_flag> buf_usage;
|
||||
|
||||
@@ -58,10 +58,13 @@ double mouse_x_error = 0.0, mouse_y_error = 0.0;
|
||||
}
|
||||
|
||||
struct mouseinputdata {
|
||||
atomic_int deltax, deltay, deltaz;
|
||||
atomic_int deltax;
|
||||
atomic_int deltay;
|
||||
atomic_int deltaz;
|
||||
atomic_int mousebuttons;
|
||||
atomic_bool mouse_tablet_in_proximity;
|
||||
std::atomic<double> x_abs, y_abs;
|
||||
std::atomic<double> x_abs;
|
||||
std::atomic<double> y_abs;
|
||||
};
|
||||
static mouseinputdata mousedata;
|
||||
|
||||
@@ -435,7 +438,7 @@ RendererStack::createRenderer(Renderer renderer)
|
||||
QTimer::singleShot(0, this, [this]() { switchRenderer(Renderer::Software); });
|
||||
current.reset(nullptr);
|
||||
break;
|
||||
};
|
||||
}
|
||||
rendererWindow = hw;
|
||||
connect(this, &RendererStack::blitToRenderer, hw, &VulkanWindowRenderer::onBlit, Qt::QueuedConnection);
|
||||
connect(hw, &VulkanWindowRenderer::rendererInitialized, [=]() {
|
||||
|
||||
@@ -103,7 +103,14 @@ private:
|
||||
|
||||
Ui::RendererStack *ui;
|
||||
|
||||
int x, y, w, h, sx, sy, sw, sh;
|
||||
int x;
|
||||
int y;
|
||||
int w;
|
||||
int h;
|
||||
int sx;
|
||||
int sy;
|
||||
int sw;
|
||||
int sh;
|
||||
|
||||
int currentBuf = 0;
|
||||
int isMouseDown = 0;
|
||||
|
||||
@@ -78,10 +78,14 @@
|
||||
static SDL_Window *sdl_win = NULL;
|
||||
static SDL_Renderer *sdl_render = NULL;
|
||||
static SDL_Texture *sdl_tex = NULL;
|
||||
static int sdl_w, sdl_h;
|
||||
static int sdl_fs, sdl_flags = -1;
|
||||
static int cur_w, cur_h;
|
||||
static int cur_ww = 0, cur_wh = 0;
|
||||
static int sdl_w;
|
||||
static int sdl_h;
|
||||
static int sdl_fs;
|
||||
static int sdl_flags = -1;
|
||||
static int cur_w;
|
||||
static int cur_h;
|
||||
static int cur_ww = 0;
|
||||
static int cur_wh = 0;
|
||||
static volatile int sdl_enabled = 0;
|
||||
static SDL_mutex *sdl_mutex = NULL;
|
||||
|
||||
@@ -236,7 +240,16 @@ sdl_integer_scale(double *d, double *g)
|
||||
static void
|
||||
sdl_stretch(int *w, int *h, int *x, int *y)
|
||||
{
|
||||
double hw, gw, hh, gh, dx, dy, dw, dh, gsr, hsr;
|
||||
double hw;
|
||||
double gw;
|
||||
double hh;
|
||||
double gh;
|
||||
double dx;
|
||||
double dy;
|
||||
double dw;
|
||||
double dh;
|
||||
double gsr;
|
||||
double hsr;
|
||||
|
||||
hw = (double) sdl_w;
|
||||
hh = (double) sdl_h;
|
||||
@@ -298,7 +311,8 @@ sdl_blit(int x, int y, int w, int h)
|
||||
{
|
||||
SDL_Rect r_src;
|
||||
void *pixeldata;
|
||||
int ret, pitch;
|
||||
int ret;
|
||||
int pitch;
|
||||
|
||||
if (!sdl_enabled || (x < 0) || (y < 0) || (w <= 0) || (h <= 0) || (w > 2048) || (h > 2048) || (buffer32 == NULL) || (sdl_render == NULL) || (sdl_tex == NULL)) {
|
||||
video_blit_complete();
|
||||
@@ -385,10 +399,9 @@ sdl_close(void)
|
||||
static void
|
||||
sdl_select_best_hw_driver(void)
|
||||
{
|
||||
int i;
|
||||
SDL_RendererInfo renderInfo;
|
||||
|
||||
for (i = 0; i < SDL_GetNumRenderDrivers(); ++i) {
|
||||
for (int i = 0; i < SDL_GetNumRenderDrivers(); ++i) {
|
||||
SDL_GetRenderDriverInfo(i, &renderInfo);
|
||||
if (renderInfo.flags & SDL_RENDERER_ACCELERATED) {
|
||||
SDL_SetHint(SDL_HINT_RENDER_DRIVER, renderInfo.name);
|
||||
@@ -408,7 +421,7 @@ sdl_init_texture(void)
|
||||
}
|
||||
|
||||
sdl_tex = SDL_CreateTexture(sdl_render, SDL_PIXELFORMAT_ARGB8888,
|
||||
SDL_TEXTUREACCESS_STREAMING, (2048), (2048));
|
||||
SDL_TEXTUREACCESS_STREAMING, 2048, 2048);
|
||||
|
||||
if (sdl_render == NULL) {
|
||||
sdl_log("SDL: unable to SDL_CreateRenderer (%s)\n", SDL_GetError());
|
||||
@@ -520,13 +533,14 @@ sdl_initho(void *win)
|
||||
int
|
||||
sdl_pause(void)
|
||||
{
|
||||
return (0);
|
||||
return 0;
|
||||
}
|
||||
|
||||
void
|
||||
sdl_resize(int w, int h)
|
||||
{
|
||||
int ww = 0, wh = 0;
|
||||
int ww = 0;
|
||||
int wh = 0;
|
||||
|
||||
if (video_fullscreen & 2)
|
||||
return;
|
||||
|
||||
@@ -1,261 +1,256 @@
|
||||
/*
|
||||
* 86Box A hypervisor and IBM PC system emulator that specializes in
|
||||
* running old operating systems and software designed for IBM
|
||||
* PC systems and compatibles from 1981 through fairly recent
|
||||
* system designs based on the PCI bus.
|
||||
*
|
||||
* This file is part of the 86Box distribution.
|
||||
*
|
||||
* Program settings UI module.
|
||||
*
|
||||
*
|
||||
*
|
||||
* Authors: Miran Grca <mgrca8@gmail.com>
|
||||
* Cacodemon345
|
||||
*
|
||||
* Copyright 2022 Miran Grca
|
||||
* Copyright 2022 Cacodemon345
|
||||
*/
|
||||
#include <cstdint>
|
||||
#include <cstdio>
|
||||
#include <cstdlib>
|
||||
#include <cstring>
|
||||
|
||||
#include "86box/hdd.h"
|
||||
#include "qt_settings_bus_tracking.hpp"
|
||||
|
||||
SettingsBusTracking::SettingsBusTracking()
|
||||
{
|
||||
int i;
|
||||
|
||||
mfm_tracking = 0x0000000000000000ULL;
|
||||
esdi_tracking = 0x0000000000000000ULL;
|
||||
xta_tracking = 0x0000000000000000ULL;
|
||||
|
||||
for (i = 0; i < 8; i++) {
|
||||
if (i < 4)
|
||||
ide_tracking[i] = 0x0000000000000000ULL;
|
||||
|
||||
scsi_tracking[i] = 0x0000000000000000ULL;
|
||||
}
|
||||
}
|
||||
|
||||
uint8_t
|
||||
SettingsBusTracking::next_free_mfm_channel()
|
||||
{
|
||||
if ((mfm_tracking & 0xff00ULL) && !(mfm_tracking & 0x00ffULL))
|
||||
return 1;
|
||||
|
||||
if (!(mfm_tracking & 0xff00ULL) && (mfm_tracking & 0x00ffULL))
|
||||
return 0;
|
||||
|
||||
return CHANNEL_NONE;
|
||||
}
|
||||
|
||||
uint8_t
|
||||
SettingsBusTracking::next_free_esdi_channel()
|
||||
{
|
||||
if ((esdi_tracking & 0xff00ULL) && !(esdi_tracking & 0x00ffULL))
|
||||
return 1;
|
||||
|
||||
if (!(esdi_tracking & 0xff00ULL) && (esdi_tracking & 0x00ffULL))
|
||||
return 0;
|
||||
|
||||
return CHANNEL_NONE;
|
||||
}
|
||||
|
||||
uint8_t
|
||||
SettingsBusTracking::next_free_xta_channel()
|
||||
{
|
||||
if ((xta_tracking & 0xff00ULL) && !(xta_tracking & 0x00ffULL))
|
||||
return 1;
|
||||
|
||||
if (!(xta_tracking & 0xff00ULL) && (xta_tracking & 0x00ffULL))
|
||||
return 0;
|
||||
|
||||
return CHANNEL_NONE;
|
||||
}
|
||||
|
||||
uint8_t
|
||||
SettingsBusTracking::next_free_ide_channel()
|
||||
{
|
||||
int i, element;
|
||||
uint64_t mask;
|
||||
uint8_t ret = CHANNEL_NONE;
|
||||
|
||||
for (i = 0; i < 32; i++) {
|
||||
element = ((i << 3) >> 6);
|
||||
mask = 0xffULL << ((uint64_t) ((i << 3) & 0x3f));
|
||||
|
||||
if (!(ide_tracking[element] & mask)) {
|
||||
ret = (uint8_t) i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
uint8_t
|
||||
SettingsBusTracking::next_free_scsi_id()
|
||||
{
|
||||
int i, element;
|
||||
uint64_t mask;
|
||||
uint8_t ret = CHANNEL_NONE;
|
||||
|
||||
for (i = 0; i < 64; i++) {
|
||||
element = ((i << 3) >> 6);
|
||||
mask = 0xffULL << ((uint64_t) ((i << 3) & 0x3f));
|
||||
|
||||
if (!(scsi_tracking[element] & mask)) {
|
||||
ret = (uint8_t) i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
int
|
||||
SettingsBusTracking::mfm_bus_full()
|
||||
{
|
||||
int i;
|
||||
uint64_t mask;
|
||||
uint8_t count = 0;
|
||||
|
||||
for (i = 0; i < 2; i++) {
|
||||
mask = 0xffULL << ((uint64_t) ((i << 3) & 0x3f));
|
||||
|
||||
if (mfm_tracking & mask)
|
||||
count++;
|
||||
}
|
||||
|
||||
return (count == 2);
|
||||
}
|
||||
|
||||
int
|
||||
SettingsBusTracking::esdi_bus_full()
|
||||
{
|
||||
int i;
|
||||
uint64_t mask;
|
||||
uint8_t count = 0;
|
||||
|
||||
for (i = 0; i < 2; i++) {
|
||||
mask = 0xffULL << ((uint64_t) ((i << 3) & 0x3f));
|
||||
|
||||
if (esdi_tracking & mask)
|
||||
count++;
|
||||
}
|
||||
|
||||
return (count == 2);
|
||||
}
|
||||
|
||||
int
|
||||
SettingsBusTracking::xta_bus_full()
|
||||
{
|
||||
int i;
|
||||
uint64_t mask;
|
||||
uint8_t count = 0;
|
||||
|
||||
for (i = 0; i < 2; i++) {
|
||||
mask = 0xffULL << ((uint64_t) ((i << 3) & 0x3f));
|
||||
|
||||
if (xta_tracking & mask)
|
||||
count++;
|
||||
}
|
||||
|
||||
return (count == 2);
|
||||
}
|
||||
|
||||
int
|
||||
SettingsBusTracking::ide_bus_full()
|
||||
{
|
||||
int i, element;
|
||||
uint64_t mask;
|
||||
uint8_t count = 0;
|
||||
|
||||
for (i = 0; i < 32; i++) {
|
||||
element = ((i << 3) >> 6);
|
||||
mask = 0xffULL << ((uint64_t) ((i << 3) & 0x3f));
|
||||
|
||||
if (ide_tracking[element] & mask)
|
||||
count++;
|
||||
}
|
||||
|
||||
return (count == 32);
|
||||
}
|
||||
|
||||
int
|
||||
SettingsBusTracking::scsi_bus_full()
|
||||
{
|
||||
int i, element;
|
||||
uint64_t mask;
|
||||
uint8_t count = 0;
|
||||
|
||||
for (i = 0; i < 64; i++) {
|
||||
element = ((i << 3) >> 6);
|
||||
mask = 0xffULL << ((uint64_t) ((i << 3) & 0x3f));
|
||||
|
||||
if (scsi_tracking[element] & mask)
|
||||
count++;
|
||||
}
|
||||
|
||||
return (count == 64);
|
||||
}
|
||||
|
||||
void
|
||||
SettingsBusTracking::device_track(int set, uint8_t dev_type, int bus, int channel)
|
||||
{
|
||||
int element;
|
||||
uint64_t mask;
|
||||
|
||||
switch (bus) {
|
||||
case HDD_BUS_MFM:
|
||||
mask = ((uint64_t) dev_type) << ((uint64_t) ((channel << 3) & 0x3f));
|
||||
|
||||
if (set)
|
||||
mfm_tracking |= mask;
|
||||
else
|
||||
mfm_tracking &= ~mask;
|
||||
break;
|
||||
|
||||
case HDD_BUS_ESDI:
|
||||
mask = ((uint64_t) dev_type) << ((uint64_t) ((channel << 3) & 0x3f));
|
||||
|
||||
if (set)
|
||||
esdi_tracking |= mask;
|
||||
else
|
||||
esdi_tracking &= ~mask;
|
||||
break;
|
||||
|
||||
case HDD_BUS_XTA:
|
||||
mask = ((uint64_t) dev_type) << ((uint64_t) ((channel << 3) & 0x3f));
|
||||
|
||||
if (set)
|
||||
xta_tracking |= mask;
|
||||
else
|
||||
xta_tracking &= ~mask;
|
||||
break;
|
||||
|
||||
case HDD_BUS_IDE:
|
||||
case HDD_BUS_ATAPI:
|
||||
element = ((channel << 3) >> 6);
|
||||
mask = ((uint64_t) dev_type) << ((uint64_t) ((channel << 3) & 0x3f));
|
||||
|
||||
if (set)
|
||||
ide_tracking[element] |= mask;
|
||||
else
|
||||
ide_tracking[element] &= ~mask;
|
||||
break;
|
||||
|
||||
case HDD_BUS_SCSI:
|
||||
element = ((channel << 3) >> 6);
|
||||
mask = ((uint64_t) dev_type) << ((uint64_t) ((channel << 3) & 0x3f));
|
||||
|
||||
if (set)
|
||||
scsi_tracking[element] |= mask;
|
||||
else
|
||||
scsi_tracking[element] &= ~mask;
|
||||
break;
|
||||
}
|
||||
}
|
||||
/*
|
||||
* 86Box A hypervisor and IBM PC system emulator that specializes in
|
||||
* running old operating systems and software designed for IBM
|
||||
* PC systems and compatibles from 1981 through fairly recent
|
||||
* system designs based on the PCI bus.
|
||||
*
|
||||
* This file is part of the 86Box distribution.
|
||||
*
|
||||
* Program settings UI module.
|
||||
*
|
||||
*
|
||||
*
|
||||
* Authors: Miran Grca <mgrca8@gmail.com>
|
||||
* Cacodemon345
|
||||
*
|
||||
* Copyright 2022 Miran Grca
|
||||
* Copyright 2022 Cacodemon345
|
||||
*/
|
||||
#include <cstdint>
|
||||
#include <cstdio>
|
||||
#include <cstdlib>
|
||||
#include <cstring>
|
||||
|
||||
#include "86box/hdd.h"
|
||||
#include "qt_settings_bus_tracking.hpp"
|
||||
|
||||
SettingsBusTracking::SettingsBusTracking()
|
||||
{
|
||||
mfm_tracking = 0x0000000000000000ULL;
|
||||
esdi_tracking = 0x0000000000000000ULL;
|
||||
xta_tracking = 0x0000000000000000ULL;
|
||||
|
||||
for (uint8_t i = 0; i < 8; i++) {
|
||||
if (i < 4)
|
||||
ide_tracking[i] = 0x0000000000000000ULL;
|
||||
|
||||
scsi_tracking[i] = 0x0000000000000000ULL;
|
||||
}
|
||||
}
|
||||
|
||||
uint8_t
|
||||
SettingsBusTracking::next_free_mfm_channel()
|
||||
{
|
||||
if ((mfm_tracking & 0xff00ULL) && !(mfm_tracking & 0x00ffULL))
|
||||
return 1;
|
||||
|
||||
if (!(mfm_tracking & 0xff00ULL) && (mfm_tracking & 0x00ffULL))
|
||||
return 0;
|
||||
|
||||
return CHANNEL_NONE;
|
||||
}
|
||||
|
||||
uint8_t
|
||||
SettingsBusTracking::next_free_esdi_channel()
|
||||
{
|
||||
if ((esdi_tracking & 0xff00ULL) && !(esdi_tracking & 0x00ffULL))
|
||||
return 1;
|
||||
|
||||
if (!(esdi_tracking & 0xff00ULL) && (esdi_tracking & 0x00ffULL))
|
||||
return 0;
|
||||
|
||||
return CHANNEL_NONE;
|
||||
}
|
||||
|
||||
uint8_t
|
||||
SettingsBusTracking::next_free_xta_channel()
|
||||
{
|
||||
if ((xta_tracking & 0xff00ULL) && !(xta_tracking & 0x00ffULL))
|
||||
return 1;
|
||||
|
||||
if (!(xta_tracking & 0xff00ULL) && (xta_tracking & 0x00ffULL))
|
||||
return 0;
|
||||
|
||||
return CHANNEL_NONE;
|
||||
}
|
||||
|
||||
uint8_t
|
||||
SettingsBusTracking::next_free_ide_channel()
|
||||
{
|
||||
int element;
|
||||
uint64_t mask;
|
||||
uint8_t ret = CHANNEL_NONE;
|
||||
|
||||
for (uint8_t i = 0; i < 32; i++) {
|
||||
element = ((i << 3) >> 6);
|
||||
mask = 0xffULL << ((uint64_t) ((i << 3) & 0x3f));
|
||||
|
||||
if (!(ide_tracking[element] & mask)) {
|
||||
ret = (uint8_t) i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
uint8_t
|
||||
SettingsBusTracking::next_free_scsi_id()
|
||||
{
|
||||
int element;
|
||||
uint64_t mask;
|
||||
uint8_t ret = CHANNEL_NONE;
|
||||
|
||||
for (uint8_t i = 0; i < 64; i++) {
|
||||
element = ((i << 3) >> 6);
|
||||
mask = 0xffULL << ((uint64_t) ((i << 3) & 0x3f));
|
||||
|
||||
if (!(scsi_tracking[element] & mask)) {
|
||||
ret = (uint8_t) i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
int
|
||||
SettingsBusTracking::mfm_bus_full()
|
||||
{
|
||||
uint64_t mask;
|
||||
uint8_t count = 0;
|
||||
|
||||
for (uint8_t i = 0; i < 2; i++) {
|
||||
mask = 0xffULL << ((uint64_t) ((i << 3) & 0x3f));
|
||||
|
||||
if (mfm_tracking & mask)
|
||||
count++;
|
||||
}
|
||||
|
||||
return (count == 2);
|
||||
}
|
||||
|
||||
int
|
||||
SettingsBusTracking::esdi_bus_full()
|
||||
{
|
||||
uint64_t mask;
|
||||
uint8_t count = 0;
|
||||
|
||||
for (uint8_t i = 0; i < 2; i++) {
|
||||
mask = 0xffULL << ((uint64_t) ((i << 3) & 0x3f));
|
||||
|
||||
if (esdi_tracking & mask)
|
||||
count++;
|
||||
}
|
||||
|
||||
return (count == 2);
|
||||
}
|
||||
|
||||
int
|
||||
SettingsBusTracking::xta_bus_full()
|
||||
{
|
||||
uint64_t mask;
|
||||
uint8_t count = 0;
|
||||
|
||||
for (uint8_t i = 0; i < 2; i++) {
|
||||
mask = 0xffULL << ((uint64_t) ((i << 3) & 0x3f));
|
||||
|
||||
if (xta_tracking & mask)
|
||||
count++;
|
||||
}
|
||||
|
||||
return (count == 2);
|
||||
}
|
||||
|
||||
int
|
||||
SettingsBusTracking::ide_bus_full()
|
||||
{
|
||||
int element;
|
||||
uint64_t mask;
|
||||
uint8_t count = 0;
|
||||
|
||||
for (uint8_t i = 0; i < 32; i++) {
|
||||
element = ((i << 3) >> 6);
|
||||
mask = 0xffULL << ((uint64_t) ((i << 3) & 0x3f));
|
||||
|
||||
if (ide_tracking[element] & mask)
|
||||
count++;
|
||||
}
|
||||
|
||||
return (count == 32);
|
||||
}
|
||||
|
||||
int
|
||||
SettingsBusTracking::scsi_bus_full()
|
||||
{
|
||||
int element;
|
||||
uint64_t mask;
|
||||
uint8_t count = 0;
|
||||
|
||||
for (uint8_t i = 0; i < 64; i++) {
|
||||
element = ((i << 3) >> 6);
|
||||
mask = 0xffULL << ((uint64_t) ((i << 3) & 0x3f));
|
||||
|
||||
if (scsi_tracking[element] & mask)
|
||||
count++;
|
||||
}
|
||||
|
||||
return (count == 64);
|
||||
}
|
||||
|
||||
void
|
||||
SettingsBusTracking::device_track(int set, uint8_t dev_type, int bus, int channel)
|
||||
{
|
||||
int element;
|
||||
uint64_t mask;
|
||||
|
||||
switch (bus) {
|
||||
case HDD_BUS_MFM:
|
||||
mask = ((uint64_t) dev_type) << ((uint64_t) ((channel << 3) & 0x3f));
|
||||
|
||||
if (set)
|
||||
mfm_tracking |= mask;
|
||||
else
|
||||
mfm_tracking &= ~mask;
|
||||
break;
|
||||
|
||||
case HDD_BUS_ESDI:
|
||||
mask = ((uint64_t) dev_type) << ((uint64_t) ((channel << 3) & 0x3f));
|
||||
|
||||
if (set)
|
||||
esdi_tracking |= mask;
|
||||
else
|
||||
esdi_tracking &= ~mask;
|
||||
break;
|
||||
|
||||
case HDD_BUS_XTA:
|
||||
mask = ((uint64_t) dev_type) << ((uint64_t) ((channel << 3) & 0x3f));
|
||||
|
||||
if (set)
|
||||
xta_tracking |= mask;
|
||||
else
|
||||
xta_tracking &= ~mask;
|
||||
break;
|
||||
|
||||
case HDD_BUS_IDE:
|
||||
case HDD_BUS_ATAPI:
|
||||
element = ((channel << 3) >> 6);
|
||||
mask = ((uint64_t) dev_type) << ((uint64_t) ((channel << 3) & 0x3f));
|
||||
|
||||
if (set)
|
||||
ide_tracking[element] |= mask;
|
||||
else
|
||||
ide_tracking[element] &= ~mask;
|
||||
break;
|
||||
|
||||
case HDD_BUS_SCSI:
|
||||
element = ((channel << 3) >> 6);
|
||||
mask = ((uint64_t) dev_type) << ((uint64_t) ((channel << 3) & 0x3f));
|
||||
|
||||
if (set)
|
||||
scsi_tracking[element] |= mask;
|
||||
else
|
||||
scsi_tracking[element] &= ~mask;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -44,17 +44,17 @@ const int DataBusChannel = Qt::UserRole + 1;
|
||||
const int DataBusPrevious = Qt::UserRole + 2;
|
||||
const int DataBusChannelPrevious = Qt::UserRole + 3;
|
||||
|
||||
/*
|
||||
#if 0
|
||||
static void
|
||||
normalize_hd_list()
|
||||
{
|
||||
hard_disk_t ihdd[HDD_NUM];
|
||||
int i, j;
|
||||
int j;
|
||||
|
||||
j = 0;
|
||||
memset(ihdd, 0x00, HDD_NUM * sizeof(hard_disk_t));
|
||||
|
||||
for (i = 0; i < HDD_NUM; i++) {
|
||||
for (uint8_t i = 0; i < HDD_NUM; i++) {
|
||||
if (temp_hdd[i].bus != HDD_BUS_DISABLED) {
|
||||
memcpy(&(ihdd[j]), &(temp_hdd[i]), sizeof(hard_disk_t));
|
||||
j++;
|
||||
@@ -63,7 +63,7 @@ normalize_hd_list()
|
||||
|
||||
memcpy(temp_hdd, ihdd, HDD_NUM * sizeof(hard_disk_t));
|
||||
}
|
||||
*/
|
||||
#endif
|
||||
|
||||
static QString
|
||||
busChannelName(const QModelIndex &idx)
|
||||
|
||||
@@ -200,7 +200,7 @@ SettingsMachine::on_comboBoxMachine_currentIndexChanged(int index)
|
||||
ui->comboBoxCPU->setCurrentIndex(selectedCpuFamilyRow);
|
||||
|
||||
int divisor;
|
||||
if ((machine_get_ram_granularity(machineId) < 1024)) {
|
||||
if (machine_get_ram_granularity(machineId) < 1024) {
|
||||
divisor = 1;
|
||||
ui->spinBoxRAM->setSuffix(QCoreApplication::translate("", "KB").prepend(' '));
|
||||
} else {
|
||||
|
||||
@@ -29,7 +29,9 @@
|
||||
|
||||
MainWindow *main_window = nullptr;
|
||||
|
||||
static QString sb_text, sb_buguitext, sb_mt32lcdtext;
|
||||
static QString sb_text;
|
||||
static QString sb_buguitext;
|
||||
static QString sb_mt32lcdtext;
|
||||
|
||||
extern "C" {
|
||||
|
||||
@@ -221,7 +223,6 @@ ui_sb_bugui(char *str)
|
||||
{
|
||||
sb_buguitext = str;
|
||||
ui_sb_update_text();
|
||||
;
|
||||
}
|
||||
|
||||
void
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -172,7 +172,9 @@ void
|
||||
WindowsRawInputFilter::keyboard_handle(PRAWINPUT raw)
|
||||
{
|
||||
USHORT scancode;
|
||||
static int recv_lalt = 0, recv_ralt = 0, recv_tab = 0;
|
||||
static int recv_lalt = 0;
|
||||
static int recv_ralt = 0;
|
||||
static int recv_tab = 0;
|
||||
|
||||
RAWKEYBOARD rawKB = raw->data.keyboard;
|
||||
scancode = rawKB.MakeCode;
|
||||
@@ -334,7 +336,8 @@ void
|
||||
WindowsRawInputFilter::mouse_handle(PRAWINPUT raw)
|
||||
{
|
||||
RAWMOUSE state = raw->data.mouse;
|
||||
static int x, y;
|
||||
static int x;
|
||||
static int y;
|
||||
|
||||
/* read mouse buttons and wheel */
|
||||
if (state.usButtonFlags & RI_MOUSE_LEFT_BUTTON_DOWN)
|
||||
|
||||
@@ -106,7 +106,8 @@ joystick_get_axis(int joystick_nr, int mapping)
|
||||
void
|
||||
joystick_process()
|
||||
{
|
||||
int c, d;
|
||||
int c;
|
||||
int d;
|
||||
|
||||
if (!joystick_type)
|
||||
return;
|
||||
|
||||
@@ -443,12 +443,12 @@ joystick_get_axis(int joystick_nr, int mapping)
|
||||
void
|
||||
joystick_process(void)
|
||||
{
|
||||
int c, d;
|
||||
int d;
|
||||
|
||||
if (joystick_type == 7)
|
||||
return;
|
||||
|
||||
for (c = 0; c < joystick_get_max_joysticks(joystick_type); c++) {
|
||||
for (int c = 0; c < joystick_get_max_joysticks(joystick_type); c++) {
|
||||
if (joystick_state[c].plat_joystick_nr) {
|
||||
int joystick_nr = joystick_state[c].plat_joystick_nr - 1;
|
||||
|
||||
@@ -458,8 +458,10 @@ joystick_process(void)
|
||||
joystick_state[c].button[d] = plat_joystick_state[joystick_nr].b[joystick_state[c].button_mapping[d]];
|
||||
|
||||
for (d = 0; d < joystick_get_pov_count(joystick_type); d++) {
|
||||
int x, y;
|
||||
double angle, magnitude;
|
||||
int x;
|
||||
int y;
|
||||
double angle;
|
||||
double magnitude;
|
||||
|
||||
x = joystick_get_axis(joystick_nr, joystick_state[c].pov_mapping[d][0]);
|
||||
y = joystick_get_axis(joystick_nr, joystick_state[c].pov_mapping[d][1]);
|
||||
|
||||
@@ -34,7 +34,8 @@ static zwp_relative_pointer_v1 *rel_pointer = nullptr;
|
||||
static zwp_pointer_constraints_v1 *conf_pointer_interface = nullptr;
|
||||
static zwp_locked_pointer_v1 *conf_pointer = nullptr;
|
||||
|
||||
static int rel_mouse_x = 0, rel_mouse_y = 0;
|
||||
static int rel_mouse_x = 0;
|
||||
static int rel_mouse_y = 0;
|
||||
static bool wl_init_ok = false;
|
||||
|
||||
void
|
||||
|
||||
@@ -59,7 +59,8 @@ parse_valuators(const double *input_values,
|
||||
const unsigned char *mask, int mask_len,
|
||||
double *output_values, int output_values_len)
|
||||
{
|
||||
int i = 0, z = 0;
|
||||
int i = 0;
|
||||
int z = 0;
|
||||
int top = mask_len * 8;
|
||||
if (top > 16)
|
||||
top = 16;
|
||||
@@ -260,7 +261,10 @@ xinput2_init()
|
||||
qWarning() << "Cannot open current X11 display";
|
||||
return;
|
||||
}
|
||||
auto event = 0, err = 0, minor = 1, major = 2;
|
||||
auto event = 0;
|
||||
auto err = 0;
|
||||
auto minor = 1;
|
||||
auto major = 2;
|
||||
if (XQueryExtension(disp, "XInputExtension", &xi2opcode, &event, &err)) {
|
||||
if (XIQueryVersion(disp, &major, &minor) == Success) {
|
||||
procThread = QThread::create(xinput2_proc);
|
||||
|
||||
@@ -48,7 +48,8 @@ static void
|
||||
xkbcommon_wl_set_keymap()
|
||||
{
|
||||
/* Grab keymap from the first seat with one. */
|
||||
seat_t *seat, *tmp;
|
||||
seat_t *seat;
|
||||
seat_t *tmp;
|
||||
wl_list_for_each_safe(seat, tmp, &seats, link) {
|
||||
if (seat->keymap) {
|
||||
xkbcommon_init(seat->keymap);
|
||||
@@ -180,7 +181,8 @@ display_global_remove(void *data, struct wl_registry *wl_registry, uint32_t id)
|
||||
{
|
||||
xkbcommon_close();
|
||||
|
||||
seat_t *seat, *tmp;
|
||||
seat_t *seat;
|
||||
seat_t *tmp;
|
||||
wl_list_for_each_safe(seat, tmp, &seats, link) {
|
||||
if (seat->wl_kbd) {
|
||||
if (seat->version >= WL_SEAT_RELEASE_SINCE_VERSION)
|
||||
|
||||
@@ -125,7 +125,7 @@ scsi_card_available(int card)
|
||||
if (scsi_cards[card].device)
|
||||
return (device_available(scsi_cards[card].device));
|
||||
|
||||
return (1);
|
||||
return 1;
|
||||
}
|
||||
|
||||
const device_t *
|
||||
@@ -138,7 +138,7 @@ int
|
||||
scsi_card_has_config(int card)
|
||||
{
|
||||
if (!scsi_cards[card].device)
|
||||
return (0);
|
||||
return 0;
|
||||
|
||||
return (device_has_config(scsi_cards[card].device) ? 1 : 0);
|
||||
}
|
||||
@@ -156,17 +156,17 @@ scsi_card_get_from_internal_name(char *s)
|
||||
|
||||
while (scsi_cards[c].device != NULL) {
|
||||
if (!strcmp((char *) scsi_cards[c].device->internal_name, s))
|
||||
return (c);
|
||||
return c;
|
||||
c++;
|
||||
}
|
||||
|
||||
return (0);
|
||||
return 0;
|
||||
}
|
||||
|
||||
void
|
||||
scsi_card_init(void)
|
||||
{
|
||||
int i = 0, max = SCSI_BUS_MAX;
|
||||
int max = SCSI_BUS_MAX;
|
||||
|
||||
/* On-board SCSI controllers get the first bus, so if one is present,
|
||||
increase our instance number here. */
|
||||
@@ -176,7 +176,7 @@ scsi_card_init(void)
|
||||
/* Do not initialize any controllers if we have do not have any SCSI
|
||||
bus left. */
|
||||
if (max > 0) {
|
||||
for (i = 0; i < max; i++) {
|
||||
for (int i = 0; i < max; i++) {
|
||||
if (!scsi_cards[scsi_card_current[i]].device)
|
||||
continue;
|
||||
|
||||
|
||||
@@ -139,14 +139,14 @@ aha154x_shram(x54x_t *dev, uint8_t cmd)
|
||||
{
|
||||
/* If not supported, give up. */
|
||||
if (dev->rom_shram == 0x0000)
|
||||
return (0x04);
|
||||
return 0x04;
|
||||
|
||||
/* Bit 0 = Shadow RAM write enable;
|
||||
Bit 1 = Shadow RAM read enable. */
|
||||
dev->shram_mode = cmd;
|
||||
|
||||
/* Firmware expects 04 status. */
|
||||
return (0x04);
|
||||
return 0x04;
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -173,7 +173,7 @@ aha154x_eeprom(x54x_t *dev, uint8_t cmd, uint8_t arg, uint8_t len, uint8_t off,
|
||||
|
||||
/* Only if we can handle it.. */
|
||||
if (dev->nvr == NULL)
|
||||
return (r);
|
||||
return r;
|
||||
|
||||
if (cmd == 0x22) {
|
||||
/* Write data to the EEPROM. */
|
||||
@@ -198,7 +198,7 @@ aha154x_eeprom(x54x_t *dev, uint8_t cmd, uint8_t arg, uint8_t len, uint8_t off,
|
||||
r = len;
|
||||
}
|
||||
|
||||
return (r);
|
||||
return r;
|
||||
}
|
||||
|
||||
/* Map either the main or utility (Select) ROM into the memory space. */
|
||||
@@ -219,7 +219,7 @@ aha154x_mmap(x54x_t *dev, uint8_t cmd)
|
||||
break;
|
||||
}
|
||||
|
||||
return (0);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static uint8_t
|
||||
|
||||
@@ -589,7 +589,6 @@ static void
|
||||
BuslogicSCSIBIOSRequestSetup(x54x_t *dev, uint8_t *CmdBuf, uint8_t *DataInBuf, uint8_t DataReply)
|
||||
{
|
||||
ESCMD *ESCSICmd = (ESCMD *) CmdBuf;
|
||||
uint32_t i;
|
||||
uint8_t temp_cdb[12];
|
||||
int target_cdb_len = 12;
|
||||
#ifdef ENABLE_BUSLOGIC_LOG
|
||||
@@ -631,7 +630,7 @@ BuslogicSCSIBIOSRequestSetup(x54x_t *dev, uint8_t *CmdBuf, uint8_t *DataInBuf, u
|
||||
buslogic_log("SCSI target command being executed on: SCSI ID %i, SCSI LUN %i, Target %i\n", ESCSICmd->TargetId, ESCSICmd->LogicalUnit, target_id);
|
||||
|
||||
buslogic_log("SCSI Cdb[0]=0x%02X\n", ESCSICmd->CDB[0]);
|
||||
for (i = 1; i < ESCSICmd->CDBLength; i++) {
|
||||
for (uint8_t i = 1; i < ESCSICmd->CDBLength; i++) {
|
||||
buslogic_log("SCSI Cdb[%i]=%i\n", i, ESCSICmd->CDB[i]);
|
||||
}
|
||||
|
||||
@@ -1152,7 +1151,9 @@ BuslogicPCIRead(int func, int addr, void *p)
|
||||
case 0x13:
|
||||
return buslogic_pci_bar[0].addr_regs[3];
|
||||
case 0x14:
|
||||
// return (buslogic_pci_bar[1].addr_regs[0] & 0xe0); /*Memory space*/
|
||||
#if 0
|
||||
return (buslogic_pci_bar[1].addr_regs[0] & 0xe0); /*Memory space*/
|
||||
#endif
|
||||
return 0x00;
|
||||
case 0x15:
|
||||
return buslogic_pci_bar[1].addr_regs[1] & 0xc0;
|
||||
@@ -1189,7 +1190,7 @@ BuslogicPCIRead(int func, int addr, void *p)
|
||||
return PCI_INTA;
|
||||
}
|
||||
|
||||
return (0);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -1753,7 +1754,7 @@ buslogic_init(const device_t *info)
|
||||
BuslogicInitializeAutoSCSIRam(dev);
|
||||
}
|
||||
|
||||
return (dev);
|
||||
return dev;
|
||||
}
|
||||
|
||||
// clang-format off
|
||||
|
||||
@@ -691,13 +691,11 @@ static uint32_t
|
||||
scsi_cdrom_drive_status(scsi_cdrom_t *dev, uint8_t *buf, uint32_t pos, uint8_t page)
|
||||
{
|
||||
uint8_t page_control = (page >> 6) & 3;
|
||||
int i = 0, j = 0;
|
||||
|
||||
uint16_t msplen;
|
||||
|
||||
page &= 0x3f;
|
||||
|
||||
for (i = 0; i < 0x40; i++) {
|
||||
for (uint8_t i = 0; i < 0x40; i++) {
|
||||
if (page == i) {
|
||||
if (scsi_cdrom_drive_status_page_flags & (1LL << ((uint64_t) (page & 0x3f)))) {
|
||||
buf[pos++] = scsi_cdrom_drive_status_read(dev, page_control, i, 0);
|
||||
@@ -706,7 +704,7 @@ scsi_cdrom_drive_status(scsi_cdrom_t *dev, uint8_t *buf, uint32_t pos, uint8_t p
|
||||
buf[pos++] = (msplen >> 8) & 0xff;
|
||||
buf[pos++] = msplen & 0xff;
|
||||
scsi_cdrom_log("CD-ROM %i: DRIVE STATUS: Page [%02X] length %i\n", dev->id, i, msplen);
|
||||
for (j = 0; j < msplen; j++) {
|
||||
for (uint16_t j = 0; j < msplen; j++) {
|
||||
if (i == 0x01) {
|
||||
buf[pos++] = scsi_cdrom_drive_status_read(dev, page_control, i, 3 + j);
|
||||
if (!(j & 1)) { /*MSB of Drive Status*/
|
||||
@@ -770,8 +768,6 @@ static uint32_t
|
||||
scsi_cdrom_mode_sense(scsi_cdrom_t *dev, uint8_t *buf, uint32_t pos, uint8_t page, uint8_t block_descriptor_len)
|
||||
{
|
||||
uint8_t page_control = (page >> 6) & 3;
|
||||
int i = 0, j = 0;
|
||||
|
||||
uint8_t msplen;
|
||||
|
||||
page &= 0x3f;
|
||||
@@ -787,14 +783,14 @@ scsi_cdrom_mode_sense(scsi_cdrom_t *dev, uint8_t *buf, uint32_t pos, uint8_t pag
|
||||
buf[pos++] = 0;
|
||||
}
|
||||
|
||||
for (i = 0; i < 0x40; i++) {
|
||||
for (uint8_t i = 0; i < 0x40; i++) {
|
||||
if ((page == GPMODE_ALL_PAGES) || (page == i)) {
|
||||
if (scsi_cdrom_mode_sense_page_flags & (1LL << ((uint64_t) (page & 0x3f)))) {
|
||||
buf[pos++] = scsi_cdrom_mode_sense_read(dev, page_control, i, 0);
|
||||
msplen = scsi_cdrom_mode_sense_read(dev, page_control, i, 1);
|
||||
buf[pos++] = msplen;
|
||||
scsi_cdrom_log("CD-ROM %i: MODE SENSE: Page [%02X] length %i\n", dev->id, i, msplen);
|
||||
for (j = 0; j < msplen; j++) {
|
||||
for (uint8_t j = 0; j < msplen; j++) {
|
||||
/* If we are returning changeable values, always return them from the page,
|
||||
so they are all correctly. */
|
||||
if (page_control == 1)
|
||||
@@ -840,7 +836,8 @@ scsi_cdrom_mode_sense(scsi_cdrom_t *dev, uint8_t *buf, uint32_t pos, uint8_t pag
|
||||
static void
|
||||
scsi_cdrom_update_request_length(scsi_cdrom_t *dev, int len, int block_len)
|
||||
{
|
||||
int32_t bt, min_len = 0;
|
||||
int32_t bt;
|
||||
int32_t min_len = 0;
|
||||
double dlen;
|
||||
|
||||
dev->max_transfer_len = dev->request_length;
|
||||
@@ -928,7 +925,8 @@ scsi_cdrom_bus_speed(scsi_cdrom_t *dev)
|
||||
static void
|
||||
scsi_cdrom_command_common(scsi_cdrom_t *dev)
|
||||
{
|
||||
double bytes_per_second = 0.0, period;
|
||||
double bytes_per_second = 0.0;
|
||||
double period;
|
||||
|
||||
dev->status = BUSY_STAT;
|
||||
dev->phase = 1;
|
||||
@@ -1273,9 +1271,10 @@ scsi_cdrom_data_phase_error(scsi_cdrom_t *dev)
|
||||
static int
|
||||
scsi_cdrom_read_data(scsi_cdrom_t *dev, int msf, int type, int flags, int32_t *len, int vendor_type)
|
||||
{
|
||||
int ret = 0, data_pos = 0;
|
||||
int i = 0, temp_len = 0;
|
||||
uint32_t cdsize = 0;
|
||||
int ret = 0;
|
||||
int data_pos = 0;
|
||||
int temp_len = 0;
|
||||
uint32_t cdsize = 0;
|
||||
|
||||
if (dev->drv->cd_status == CD_STATUS_EMPTY) {
|
||||
scsi_cdrom_not_ready(dev);
|
||||
@@ -1306,7 +1305,7 @@ scsi_cdrom_read_data(scsi_cdrom_t *dev, int msf, int type, int flags, int32_t *l
|
||||
dev->old_len = 0;
|
||||
*len = 0;
|
||||
|
||||
for (i = 0; i < dev->requested_blocks; i++) {
|
||||
for (int i = 0; i < dev->requested_blocks; i++) {
|
||||
ret = cdrom_readsector_raw(dev->drv, dev->buffer + data_pos,
|
||||
dev->sector_pos + i, msf, type, flags, &temp_len, vendor_type);
|
||||
|
||||
@@ -1327,8 +1326,10 @@ scsi_cdrom_read_data(scsi_cdrom_t *dev, int msf, int type, int flags, int32_t *l
|
||||
static int
|
||||
scsi_cdrom_read_blocks(scsi_cdrom_t *dev, int32_t *len, int first_batch, int vendor_type)
|
||||
{
|
||||
int ret = 0, msf = 0;
|
||||
int type = 0, flags = 0;
|
||||
int ret = 0;
|
||||
int msf = 0;
|
||||
int type = 0;
|
||||
int flags = 0;
|
||||
|
||||
if (dev->current_cdb[0] == GPCMD_READ_CD_MSF)
|
||||
msf = 1;
|
||||
@@ -1695,16 +1696,26 @@ void
|
||||
scsi_cdrom_command(scsi_common_t *sc, uint8_t *cdb)
|
||||
{
|
||||
scsi_cdrom_t *dev = (scsi_cdrom_t *) sc;
|
||||
int len, max_len, used_len, alloc_length, msf;
|
||||
int pos = 0, i = 0, size_idx, idx = 0;
|
||||
int len;
|
||||
int max_len;
|
||||
int used_len;
|
||||
int alloc_length;
|
||||
int msf;
|
||||
int pos = 0;
|
||||
int size_idx;
|
||||
int idx = 0;
|
||||
uint32_t feature;
|
||||
unsigned preamble_len;
|
||||
int toc_format, block_desc = 0;
|
||||
int ret, format = 0;
|
||||
int real_pos, track = 0;
|
||||
int toc_format;
|
||||
int block_desc = 0;
|
||||
int ret;
|
||||
int format = 0;
|
||||
int real_pos;
|
||||
int track = 0;
|
||||
char device_identify[9] = { '8', '6', 'B', '_', 'C', 'D', '0', '0', 0 };
|
||||
char device_identify_ex[15] = { '8', '6', 'B', '_', 'C', 'D', '0', '0', ' ', 'v', '1', '.', '0', '0', 0 };
|
||||
int32_t blen = 0, *BufLen;
|
||||
int32_t blen = 0;
|
||||
int32_t *BufLen;
|
||||
uint8_t *b;
|
||||
uint32_t profiles[2] = { MMC_PROFILE_CD_ROM, MMC_PROFILE_DVD_ROM };
|
||||
uint8_t scsi_bus = (dev->drv->scsi_device_id >> 4) & 0x0f;
|
||||
@@ -1875,7 +1886,7 @@ begin:
|
||||
return;
|
||||
|
||||
case 0xC7:
|
||||
if ((!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "MATSHITA_CD-ROM_CR-501_1.0b"))) { /*GPCMD_PLAY_AUDIO_MSF_MATSUSHITA*/
|
||||
if (!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "MATSHITA_CD-ROM_CR-501_1.0b")) { /*GPCMD_PLAY_AUDIO_MSF_MATSUSHITA*/
|
||||
cdb[0] = GPCMD_PLAY_AUDIO_MSF;
|
||||
dev->current_cdb[0] = cdb[0];
|
||||
goto begin;
|
||||
@@ -2218,7 +2229,7 @@ begin:
|
||||
alloc_length += 4;
|
||||
b += 4;
|
||||
|
||||
for (i = 0; i < 2; i++) {
|
||||
for (uint8_t i = 0; i < 2; i++) {
|
||||
b[0] = (profiles[i] >> 8) & 0xff;
|
||||
b[1] = profiles[i] & 0xff;
|
||||
|
||||
@@ -2407,7 +2418,7 @@ begin:
|
||||
break;
|
||||
} /*GPCMD_AUDIO_TRACK_SEARCH_TOSHIBA and GPCMD_EJECT_CHINON*/
|
||||
case 0xD8: /*GPCMD_AUDIO_TRACK_SEARCH_NEC*/
|
||||
if ((!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "CHINON_CD-ROM_CDS-431_H42"))) {
|
||||
if (!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "CHINON_CD-ROM_CDS-431_H42")) {
|
||||
scsi_cdrom_set_phase(dev, SCSI_PHASE_STATUS);
|
||||
scsi_cdrom_stop(sc);
|
||||
cdrom_eject(dev->id);
|
||||
@@ -2603,13 +2614,13 @@ begin:
|
||||
dev->buffer[1] = 0x11;
|
||||
break;
|
||||
case CD_STATUS_PAUSED:
|
||||
dev->buffer[1] = ((!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "CHINON_CD-ROM_CDS-431_H42"))) ? 0x15 : 0x12;
|
||||
dev->buffer[1] = (!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "CHINON_CD-ROM_CDS-431_H42")) ? 0x15 : 0x12;
|
||||
break;
|
||||
case CD_STATUS_DATA_ONLY:
|
||||
dev->buffer[1] = ((!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "CHINON_CD-ROM_CDS-431_H42"))) ? 0x00 : 0x15;
|
||||
dev->buffer[1] = (!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "CHINON_CD-ROM_CDS-431_H42")) ? 0x00 : 0x15;
|
||||
break;
|
||||
default:
|
||||
dev->buffer[1] = ((!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "CHINON_CD-ROM_CDS-431_H42"))) ? 0x00 : 0x13;
|
||||
dev->buffer[1] = (!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "CHINON_CD-ROM_CDS-431_H42")) ? 0x00 : 0x13;
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -2650,7 +2661,7 @@ begin:
|
||||
break;
|
||||
} /*GPCMD_READ_SUBCODEQ_PLAYING_STATUS_TOSHIBA and GPCMD_STOP_CHINON*/
|
||||
case 0xDD: /*GPCMD_READ_SUBCODEQ_PLAYING_STATUS_NEC*/
|
||||
if ((!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "CHINON_CD-ROM_CDS-431_H42"))) {
|
||||
if (!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "CHINON_CD-ROM_CDS-431_H42")) {
|
||||
scsi_cdrom_set_phase(dev, SCSI_PHASE_STATUS);
|
||||
scsi_cdrom_stop(sc);
|
||||
scsi_cdrom_command_complete(dev);
|
||||
@@ -2752,7 +2763,7 @@ begin:
|
||||
break;
|
||||
|
||||
case 0xC4:
|
||||
if ((!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "MATSHITA_CD-ROM_CR-501_1.0b"))) { /*GPCMD_READ_HEADER_MATSUSHITA*/
|
||||
if (!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "MATSHITA_CD-ROM_CR-501_1.0b")) { /*GPCMD_READ_HEADER_MATSUSHITA*/
|
||||
cdb[0] = GPCMD_READ_HEADER;
|
||||
dev->current_cdb[0] = cdb[0];
|
||||
goto begin;
|
||||
@@ -2839,14 +2850,14 @@ begin:
|
||||
dev->buffer[idx++] = 0x00;
|
||||
dev->buffer[idx++] = 68;
|
||||
|
||||
if ((!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "86BOX_CD-ROM_1.00")))
|
||||
if (!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "86BOX_CD-ROM_1.00"))
|
||||
ide_padstr8(dev->buffer + idx, 8, EMU_NAME); /* Vendor */
|
||||
else
|
||||
ide_padstr8(dev->buffer + idx, 8, cdrom_drive_types[dev->drv->type].vendor); /* Vendor */
|
||||
|
||||
idx += 8;
|
||||
|
||||
if ((!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "86BOX_CD-ROM_1.00")))
|
||||
if (!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "86BOX_CD-ROM_1.00"))
|
||||
ide_padstr8(dev->buffer + idx, 40, device_identify_ex); /* Product */
|
||||
else
|
||||
ide_padstr8(dev->buffer + idx, 40, cdrom_drive_types[dev->drv->type].model); /* Product */
|
||||
@@ -2872,15 +2883,15 @@ begin:
|
||||
|
||||
if (dev->drv->bus_type == CDROM_BUS_SCSI) {
|
||||
dev->buffer[3] = 0x02;
|
||||
if ((!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "86BOX_CD-ROM_1.00"))) {
|
||||
if (!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "86BOX_CD-ROM_1.00")) {
|
||||
dev->buffer[2] = 0x05;
|
||||
} else if ((!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "TOSHIBA_CD-ROM_DRIVEXM_3433"))) {
|
||||
} else if (!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "TOSHIBA_CD-ROM_DRIVEXM_3433")) {
|
||||
dev->buffer[2] = 0x02;
|
||||
} else if ((!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "TOSHIBA_CD-ROM_XM-3301TA_0272"))) {
|
||||
} else if (!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "TOSHIBA_CD-ROM_XM-3301TA_0272")) {
|
||||
dev->buffer[2] = 0x02;
|
||||
} else if ((!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "TOSHIBA_CD-ROM_XM-5701TA_3136"))) {
|
||||
} else if (!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "TOSHIBA_CD-ROM_XM-5701TA_3136")) {
|
||||
dev->buffer[2] = 0x02;
|
||||
} else if ((!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "CHINON_CD-ROM_CDS-431_H42"))) {
|
||||
} else if (!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "CHINON_CD-ROM_CDS-431_H42")) {
|
||||
dev->buffer[3] = 0x01;
|
||||
dev->buffer[2] = 0x02;
|
||||
} else if (!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "SONY_CD-ROM_CDU-541_1.0i")) {
|
||||
@@ -2889,17 +2900,17 @@ begin:
|
||||
} else if (!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "SONY_CD-ROM_CDU-76S_1.00")) {
|
||||
dev->buffer[3] = 0x01;
|
||||
dev->buffer[2] = 0x02;
|
||||
} else if ((!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "MATSHITA_CD-ROM_CR-501_1.0b"))) {
|
||||
} else if (!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "MATSHITA_CD-ROM_CR-501_1.0b")) {
|
||||
dev->buffer[3] = 0x01;
|
||||
dev->buffer[2] = 0x02;
|
||||
} else if ((!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "NEC_CD-ROM_DRIVE74_1.00"))) {
|
||||
} else if (!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "NEC_CD-ROM_DRIVE74_1.00")) {
|
||||
dev->buffer[3] = 0x01;
|
||||
dev->buffer[2] = 0x02;
|
||||
} else if ((!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "DEC_RRD45_0436"))) {
|
||||
} else if (!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "DEC_RRD45_0436")) {
|
||||
dev->buffer[2] = 0x02;
|
||||
} else if ((!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "NEC_CD-ROM_DRIVE464_1.05"))) {
|
||||
} else if (!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "NEC_CD-ROM_DRIVE464_1.05")) {
|
||||
dev->buffer[2] = 0x02;
|
||||
} else if ((!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "PIONEER_CD-ROM_DRM-604X_2403"))) {
|
||||
} else if (!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "PIONEER_CD-ROM_DRM-604X_2403")) {
|
||||
dev->buffer[2] = 0x02;
|
||||
}
|
||||
} else {
|
||||
@@ -2909,32 +2920,32 @@ begin:
|
||||
|
||||
dev->buffer[4] = 31;
|
||||
if (dev->drv->bus_type == CDROM_BUS_SCSI) {
|
||||
if ((!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "86BOX_CD-ROM_1.00"))) {
|
||||
if (!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "86BOX_CD-ROM_1.00")) {
|
||||
dev->buffer[6] = 0x01; /* 16-bit transfers supported */
|
||||
dev->buffer[7] = 0x20; /* Wide bus supported */
|
||||
} else if ((!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "PLEXTOR_CD-ROM_PX-32TS_1.03"))) {
|
||||
} else if (!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "PLEXTOR_CD-ROM_PX-32TS_1.03")) {
|
||||
dev->buffer[6] = 0x01; /* 16-bit transfers supported */
|
||||
dev->buffer[7] = 0x20; /* Wide bus supported */
|
||||
} else if ((!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "TEAC_CD-R55S_1.0R"))) {
|
||||
} else if (!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "TEAC_CD-R55S_1.0R")) {
|
||||
dev->buffer[6] = 0x01; /* 16-bit transfers supported */
|
||||
dev->buffer[7] = 0x20; /* Wide bus supported */
|
||||
} else if ((!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "DEC_RRD45_0436"))) {
|
||||
} else if (!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "DEC_RRD45_0436")) {
|
||||
dev->buffer[7] = 0x98; /* Linked Command and Relative Addressing supported */
|
||||
} else if ((!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "TOSHIBA_CD-ROM_DRIVEXM_3433"))) {
|
||||
} else if (!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "TOSHIBA_CD-ROM_DRIVEXM_3433")) {
|
||||
dev->buffer[4] = 91; /* Always 91 on Toshiba SCSI-2 CD-ROM drives from 1990*/
|
||||
dev->buffer[7] = 0x88; /* Linked Command and Relative Addressing supported */
|
||||
} else if ((!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "TOSHIBA_CD-ROM_XM-3301TA_0272"))) {
|
||||
} else if (!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "TOSHIBA_CD-ROM_XM-3301TA_0272")) {
|
||||
dev->buffer[4] = 91; /* Always 91 on Toshiba SCSI-2 CD-ROM drives from 1990*/
|
||||
dev->buffer[7] = 0x88; /* Linked Command and Relative Addressing supported */
|
||||
} else if ((!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "TOSHIBA_CD-ROM_XM-5701TA_3136"))) {
|
||||
} else if (!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "TOSHIBA_CD-ROM_XM-5701TA_3136")) {
|
||||
dev->buffer[4] = 91; /* Always 91 on Toshiba SCSI-2 CD-ROM drives from 1990*/
|
||||
dev->buffer[7] = 0x88; /* Linked Command and Relative Addressing supported */
|
||||
} else if ((!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "PIONEER_CD-ROM_DRM-604X_2403"))) {
|
||||
} else if (!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "PIONEER_CD-ROM_DRM-604X_2403")) {
|
||||
dev->buffer[4] = 42;
|
||||
}
|
||||
}
|
||||
|
||||
if ((!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "86BOX_CD-ROM_1.00"))) {
|
||||
if (!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "86BOX_CD-ROM_1.00")) {
|
||||
ide_padstr8(dev->buffer + 8, 8, EMU_NAME); /* Vendor */
|
||||
ide_padstr8(dev->buffer + 16, 16, device_identify); /* Product */
|
||||
ide_padstr8(dev->buffer + 32, 4, EMU_VERSION_EX); /* Revision */
|
||||
@@ -2942,7 +2953,7 @@ begin:
|
||||
ide_padstr8(dev->buffer + 8, 8, cdrom_drive_types[dev->drv->type].vendor); /* Vendor */
|
||||
ide_padstr8(dev->buffer + 16, 16, cdrom_drive_types[dev->drv->type].model); /* Product */
|
||||
ide_padstr8(dev->buffer + 32, 4, cdrom_drive_types[dev->drv->type].revision); /* Revision */
|
||||
if ((!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "PIONEER_CD-ROM_DRM-604X_2403"))) {
|
||||
if (!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "PIONEER_CD-ROM_DRM-604X_2403")) {
|
||||
dev->buffer[36] = 0x20;
|
||||
ide_padstr8(dev->buffer + 37, 10, "1993/01/01"); /* Date */
|
||||
}
|
||||
@@ -2993,7 +3004,7 @@ atapi_out:
|
||||
break;
|
||||
|
||||
case 0xC3:
|
||||
if ((!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "MATSHITA_CD-ROM_CR-501_1.0b"))) { /*GPCMD_READ_TOC_MATSUSHITA*/
|
||||
if (!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "MATSHITA_CD-ROM_CR-501_1.0b")) { /*GPCMD_READ_TOC_MATSUSHITA*/
|
||||
cdb[0] = GPCMD_READ_TOC_PMA_ATIP;
|
||||
dev->current_cdb[0] = cdb[0];
|
||||
goto begin;
|
||||
@@ -3028,7 +3039,7 @@ atapi_out:
|
||||
break;
|
||||
|
||||
case 0xC2:
|
||||
if ((!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "MATSHITA_CD-ROM_CR-501_1.0b"))) { /*GPCMD_READ_SUBCHANNEL_MATSUSHITA*/
|
||||
if (!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "MATSHITA_CD-ROM_CR-501_1.0b")) { /*GPCMD_READ_SUBCHANNEL_MATSUSHITA*/
|
||||
cdb[0] = GPCMD_READ_SUBCHANNEL;
|
||||
dev->current_cdb[0] = cdb[0];
|
||||
goto begin;
|
||||
@@ -3133,7 +3144,7 @@ atapi_out:
|
||||
break;
|
||||
|
||||
case 0xC5:
|
||||
if ((!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "MATSHITA_CD-ROM_CR-501_1.0b"))) { /*GPCMD_PLAY_AUDIO_MATSUSHITA*/
|
||||
if (!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "MATSHITA_CD-ROM_CR-501_1.0b")) { /*GPCMD_PLAY_AUDIO_MATSUSHITA*/
|
||||
cdb[0] = GPCMD_PLAY_AUDIO_10;
|
||||
dev->current_cdb[0] = cdb[0];
|
||||
goto begin;
|
||||
@@ -3147,7 +3158,7 @@ atapi_out:
|
||||
break;
|
||||
}
|
||||
case 0xC8:
|
||||
if ((!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "MATSHITA_CD-ROM_CR-501_1.0b"))) { /*GPCMD_PLAY_AUDIO_TRACK_INDEX_MATSUSHITA*/
|
||||
if (!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "MATSHITA_CD-ROM_CR-501_1.0b")) { /*GPCMD_PLAY_AUDIO_TRACK_INDEX_MATSUSHITA*/
|
||||
cdb[0] = GPCMD_PLAY_AUDIO_TRACK_INDEX;
|
||||
dev->current_cdb[0] = cdb[0];
|
||||
goto begin;
|
||||
@@ -3161,7 +3172,7 @@ atapi_out:
|
||||
break;
|
||||
}
|
||||
case 0xC9:
|
||||
if ((!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "MATSHITA_CD-ROM_CR-501_1.0b"))) { /*GPCMD_PLAY_AUDIO_TRACK_RELATIVE_10_MATSUSHITA*/
|
||||
if (!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "MATSHITA_CD-ROM_CR-501_1.0b")) { /*GPCMD_PLAY_AUDIO_TRACK_RELATIVE_10_MATSUSHITA*/
|
||||
cdb[0] = GPCMD_PLAY_AUDIO_TRACK_RELATIVE_10;
|
||||
dev->current_cdb[0] = cdb[0];
|
||||
goto begin;
|
||||
@@ -3179,21 +3190,21 @@ atapi_out:
|
||||
break;
|
||||
}
|
||||
case 0xCA:
|
||||
if ((!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "PIONEER_CD-ROM_DRM-604X_2403"))) { /*GPCMD_PAUSE_PIONEER*/
|
||||
if (!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "PIONEER_CD-ROM_DRM-604X_2403")) { /*GPCMD_PAUSE_PIONEER*/
|
||||
scsi_cdrom_set_phase(dev, SCSI_PHASE_STATUS);
|
||||
cdrom_audio_pause_resume(dev->drv, !(cdb[1] & 0x10));
|
||||
scsi_cdrom_command_complete(dev);
|
||||
break;
|
||||
}
|
||||
case 0xCB:
|
||||
if ((!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "MATSHITA_CD-ROM_CR-501_1.0b"))) { /*GPCMD_PAUSE_RESUME_MATSUSHITA*/
|
||||
if (!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "MATSHITA_CD-ROM_CR-501_1.0b")) { /*GPCMD_PAUSE_RESUME_MATSUSHITA*/
|
||||
cdb[0] = GPCMD_PAUSE_RESUME;
|
||||
dev->current_cdb[0] = cdb[0];
|
||||
goto begin;
|
||||
break;
|
||||
}
|
||||
case 0xCC:
|
||||
if ((!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "PIONEER_CD-ROM_DRM-604X_2403"))) {
|
||||
if (!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "PIONEER_CD-ROM_DRM-604X_2403")) {
|
||||
scsi_cdrom_set_phase(dev, SCSI_PHASE_DATA_IN);
|
||||
|
||||
max_len = cdb[7];
|
||||
@@ -3221,7 +3232,7 @@ atapi_out:
|
||||
break;
|
||||
}
|
||||
case 0xE0:
|
||||
if ((!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "PIONEER_CD-ROM_DRM-604X_2403"))) { /*GPCMD_DRIVE_STATUS_PIONEER*/
|
||||
if (!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "PIONEER_CD-ROM_DRM-604X_2403")) { /*GPCMD_DRIVE_STATUS_PIONEER*/
|
||||
scsi_cdrom_set_phase(dev, SCSI_PHASE_DATA_IN);
|
||||
|
||||
len = (cdb[9] | (cdb[8] << 8));
|
||||
@@ -3256,14 +3267,14 @@ atapi_out:
|
||||
return;
|
||||
}
|
||||
case 0xE5:
|
||||
if ((!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "MATSHITA_CD-ROM_CR-501_1.0b"))) { /*GPCMD_PLAY_AUDIO_12_MATSUSHITA*/
|
||||
if (!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "MATSHITA_CD-ROM_CR-501_1.0b")) { /*GPCMD_PLAY_AUDIO_12_MATSUSHITA*/
|
||||
cdb[0] = GPCMD_PLAY_AUDIO_12;
|
||||
dev->current_cdb[0] = cdb[0];
|
||||
goto begin;
|
||||
break;
|
||||
}
|
||||
case 0xE9:
|
||||
if ((!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "MATSHITA_CD-ROM_CR-501_1.0b"))) { /*GPCMD_PLAY_AUDIO_TRACK_RELATIVE_12_MATSUSHITA*/
|
||||
if (!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "MATSHITA_CD-ROM_CR-501_1.0b")) { /*GPCMD_PLAY_AUDIO_TRACK_RELATIVE_12_MATSUSHITA*/
|
||||
cdb[0] = GPCMD_PLAY_AUDIO_TRACK_RELATIVE_12;
|
||||
dev->current_cdb[0] = cdb[0];
|
||||
goto begin;
|
||||
@@ -3294,12 +3305,18 @@ static uint8_t
|
||||
scsi_cdrom_phase_data_out(scsi_common_t *sc)
|
||||
{
|
||||
scsi_cdrom_t *dev = (scsi_cdrom_t *) sc;
|
||||
uint16_t block_desc_len, pos;
|
||||
uint16_t block_desc_len;
|
||||
uint16_t pos;
|
||||
uint16_t param_list_len;
|
||||
uint16_t i = 0;
|
||||
|
||||
uint8_t error = 0;
|
||||
uint8_t page, page_len, hdr_len, val, old_val, ch;
|
||||
uint8_t page;
|
||||
uint8_t page_len;
|
||||
uint8_t hdr_len;
|
||||
uint8_t val;
|
||||
uint8_t old_val;
|
||||
uint8_t ch;
|
||||
|
||||
switch (dev->current_cdb[0]) {
|
||||
case GPCMD_MODE_SELECT_6:
|
||||
@@ -3496,68 +3513,68 @@ scsi_cdrom_identify(ide_t *ide, int ide_has_dma)
|
||||
ide->buffer[0] = 0x8000 | (5 << 8) | 0x80 | (2 << 5); /* ATAPI device, CD-ROM drive, removable media, accelerated DRQ */
|
||||
ide_padstr((char *) (ide->buffer + 10), "", 20); /* Serial Number */
|
||||
|
||||
if ((!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "86BOX_CD-ROM_1.00"))) {
|
||||
if (!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "86BOX_CD-ROM_1.00")) {
|
||||
ide_padstr((char *) (ide->buffer + 23), EMU_VERSION_EX, 8); /* Firmware */
|
||||
ide_padstr((char *) (ide->buffer + 27), device_identify, 40); /* Model */
|
||||
} else {
|
||||
if ((!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "NEC_CD-ROM_DRIVE260_1.01"))) {
|
||||
if (!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "NEC_CD-ROM_DRIVE260_1.01")) {
|
||||
ide_padstr((char *) (ide->buffer + 23), ".110 ", 8); /* Firmware */
|
||||
ide_padstr((char *) (ide->buffer + 27), "EN C DCR-MOD IREV2:06 ", 40); /* Model */
|
||||
} else if ((!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "NEC_CD-ROM_DRIVE260_1.00"))) {
|
||||
} else if (!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "NEC_CD-ROM_DRIVE260_1.00")) {
|
||||
ide_padstr((char *) (ide->buffer + 23), ".100 ", 8); /* Firmware */
|
||||
ide_padstr((char *) (ide->buffer + 27), "EN C DCR-MOD IREV2:06 ", 40); /* Model */
|
||||
} else if ((!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "AZT_CDA46802I_1.15"))) {
|
||||
} else if (!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "AZT_CDA46802I_1.15")) {
|
||||
ide_padstr((char *) (ide->buffer + 23), "1.15 ", 8); /* Firmware */
|
||||
ide_padstr((char *) (ide->buffer + 27), "AZT CDA46802I ", 40); /* Model */
|
||||
} else if ((!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "HITACHI_CDR-8130_0020"))) {
|
||||
} else if (!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "HITACHI_CDR-8130_0020")) {
|
||||
ide_padstr((char *) (ide->buffer + 23), "0020 ", 8); /* Firmware */
|
||||
ide_padstr((char *) (ide->buffer + 27), "HITACHI CDR-8130 ", 40); /* Model */
|
||||
} else if ((!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "SONY_CD-ROM_CDU76_1.0i"))) {
|
||||
} else if (!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "SONY_CD-ROM_CDU76_1.0i")) {
|
||||
ide_padstr((char *) (ide->buffer + 23), "1.0i ", 8); /* Firmware */
|
||||
ide_padstr((char *) (ide->buffer + 27), "SONY CD-ROM CDU76 ", 40); /* Model */
|
||||
} else if ((!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "SONY_CD-ROM_CDU311_3.0h"))) {
|
||||
} else if (!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "SONY_CD-ROM_CDU311_3.0h")) {
|
||||
ide_padstr((char *) (ide->buffer + 23), "3.0h ", 8); /* Firmware */
|
||||
ide_padstr((char *) (ide->buffer + 27), "SONY CD-ROM CDU311 ", 40); /* Model */
|
||||
} else if ((!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "NEC_CD-ROM_DRIVE280_1.05"))) {
|
||||
} else if (!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "NEC_CD-ROM_DRIVE280_1.05")) {
|
||||
ide_padstr((char *) (ide->buffer + 23), "1.05 ", 8); /* Firmware */
|
||||
ide_padstr((char *) (ide->buffer + 27), "NEC CD-ROM DRIVE:280 ", 40); /* Model */
|
||||
} else if ((!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "NEC_CD-ROM_DRIVE280_3.08"))) {
|
||||
} else if (!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "NEC_CD-ROM_DRIVE280_3.08")) {
|
||||
ide_padstr((char *) (ide->buffer + 23), "3.08 ", 8); /* Firmware */
|
||||
ide_padstr((char *) (ide->buffer + 27), "NEC CD-ROM DRIVE:280 ", 40); /* Model */
|
||||
} else if ((!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "NEC_CD-ROM_DRIVE273_4.20"))) {
|
||||
} else if (!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "NEC_CD-ROM_DRIVE273_4.20")) {
|
||||
ide_padstr((char *) (ide->buffer + 23), "4.20 ", 8); /* Firmware */
|
||||
ide_padstr((char *) (ide->buffer + 27), "NEC CD-ROM DRIVE:273 ", 40); /* Model */
|
||||
} else if ((!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "TOSHIBA_CD-ROM_XM-5302TA_0305"))) {
|
||||
} else if (!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "TOSHIBA_CD-ROM_XM-5302TA_0305")) {
|
||||
ide_padstr((char *) (ide->buffer + 23), "0305 ", 8); /* Firmware */
|
||||
ide_padstr((char *) (ide->buffer + 27), "TOSHIBA CD-ROM XM-5302TA ", 40); /* Model */
|
||||
} else if ((!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "TOSHIBA_CD-ROM_XM-5702B_TA70"))) {
|
||||
} else if (!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "TOSHIBA_CD-ROM_XM-5702B_TA70")) {
|
||||
ide_padstr((char *) (ide->buffer + 23), "TA70 ", 8); /* Firmware */
|
||||
ide_padstr((char *) (ide->buffer + 27), "TOSHIBA CD-ROM XM-5702B ", 40); /* Model */
|
||||
} else if ((!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "GOLDSTAR_CRD-8160B_3.14"))) {
|
||||
} else if (!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "GOLDSTAR_CRD-8160B_3.14")) {
|
||||
ide_padstr((char *) (ide->buffer + 23), "3.14 ", 8); /* Firmware */
|
||||
ide_padstr((char *) (ide->buffer + 27), "GOLDSTAR CRD-8160B ", 40); /* Model */
|
||||
} else if ((!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "MATSHITA_CR-571_1.0e"))) {
|
||||
} else if (!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "MATSHITA_CR-571_1.0e")) {
|
||||
ide_padstr((char *) (ide->buffer + 23), "1.0e ", 8); /* Firmware */
|
||||
ide_padstr((char *) (ide->buffer + 27), "MATSHITA CR-571 ", 40); /* Model */
|
||||
} else if ((!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "MATSHITA_CR-572_1.0j"))) {
|
||||
} else if (!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "MATSHITA_CR-572_1.0j")) {
|
||||
ide_padstr((char *) (ide->buffer + 23), "1.0j ", 8); /* Firmware */
|
||||
ide_padstr((char *) (ide->buffer + 27), "MATSHITA CR-572 ", 40); /* Model */
|
||||
} else if ((!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "MATSHITA_CD-ROM_CR-587_7S13"))) {
|
||||
} else if (!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "MATSHITA_CD-ROM_CR-587_7S13")) {
|
||||
ide_padstr((char *) (ide->buffer + 23), "7S13 ", 8); /* Firmware */
|
||||
ide_padstr((char *) (ide->buffer + 27), "MATSHITA CD-ROM CR-587 ", 40); /* Model */
|
||||
} else if ((!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "MATSHITA_CD-ROM_CR-588_LS15"))) {
|
||||
} else if (!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "MATSHITA_CD-ROM_CR-588_LS15")) {
|
||||
ide_padstr((char *) (ide->buffer + 23), "LS15 ", 8); /* Firmware */
|
||||
ide_padstr((char *) (ide->buffer + 27), "MATSHITA CD-ROM CR-588 ", 40); /* Model */
|
||||
} else if ((!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "MITSUMI_CRMC-FX4820T_D02A"))) {
|
||||
} else if (!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "MITSUMI_CRMC-FX4820T_D02A")) {
|
||||
ide_padstr((char *) (ide->buffer + 23), "D02A ", 8); /* Firmware */
|
||||
ide_padstr((char *) (ide->buffer + 27), "MITSUMI CRMC-FX4820T ", 40); /* Model */
|
||||
} else if ((!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "PHILIPS_CD-ROM_PCA403CD_U31P"))) {
|
||||
} else if (!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "PHILIPS_CD-ROM_PCA403CD_U31P")) {
|
||||
ide_padstr((char *) (ide->buffer + 23), "U31P ", 8); /* Firmware */
|
||||
ide_padstr((char *) (ide->buffer + 27), "PHILIPS CD-ROM PCA403CD ", 40); /* Model */
|
||||
} else if ((!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "BTC_CD-ROM_BCD36XH_U1.0"))) {
|
||||
} else if (!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "BTC_CD-ROM_BCD36XH_U1.0")) {
|
||||
ide_padstr((char *) (ide->buffer + 23), "U1.0 ", 8); /* Firmware */
|
||||
ide_padstr((char *) (ide->buffer + 27), "BTC CD-ROM BCD36XH ", 40); /* Model */
|
||||
} else if ((!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "KENWOOD_CD-ROM_UCR-421_208E"))) {
|
||||
} else if (!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "KENWOOD_CD-ROM_UCR-421_208E")) {
|
||||
ide_padstr((char *) (ide->buffer + 23), "208E ", 8); /* Firmware */
|
||||
ide_padstr((char *) (ide->buffer + 27), "KENWOOD CD-ROM UCR-421 ", 40); /* Model */
|
||||
}
|
||||
|
||||
@@ -162,11 +162,10 @@ scsi_device_identify(scsi_device_t *dev, uint8_t lun)
|
||||
void
|
||||
scsi_device_close_all(void)
|
||||
{
|
||||
int i, j;
|
||||
scsi_device_t *dev;
|
||||
|
||||
for (i = 0; i < SCSI_BUS_MAX; i++) {
|
||||
for (j = 0; j < SCSI_ID_MAX; j++) {
|
||||
for (uint8_t i = 0; i < SCSI_BUS_MAX; i++) {
|
||||
for (uint8_t j = 0; j < SCSI_ID_MAX; j++) {
|
||||
dev = &(scsi_devices[i][j]);
|
||||
if (dev->command_stop && dev->sc)
|
||||
dev->command_stop(dev->sc);
|
||||
@@ -177,11 +176,10 @@ scsi_device_close_all(void)
|
||||
void
|
||||
scsi_device_init(void)
|
||||
{
|
||||
int i, j;
|
||||
scsi_device_t *dev;
|
||||
|
||||
for (i = 0; i < SCSI_BUS_MAX; i++) {
|
||||
for (j = 0; j < SCSI_ID_MAX; j++) {
|
||||
for (uint8_t i = 0; i < SCSI_BUS_MAX; i++) {
|
||||
for (uint8_t j = 0; j < SCSI_ID_MAX; j++) {
|
||||
dev = &(scsi_devices[i][j]);
|
||||
|
||||
memset(dev, 0, sizeof(scsi_device_t));
|
||||
|
||||
@@ -237,10 +237,9 @@ scsi_disk_mode_sense_read(scsi_disk_t *dev, uint8_t page_control, uint8_t page,
|
||||
uint32_t
|
||||
scsi_disk_mode_sense(scsi_disk_t *dev, uint8_t *buf, uint32_t pos, uint8_t page, uint8_t block_descriptor_len)
|
||||
{
|
||||
uint8_t msplen, page_control = (page >> 6) & 3;
|
||||
|
||||
int i = 0, j = 0;
|
||||
int size = 0;
|
||||
uint8_t msplen;
|
||||
uint8_t page_control = (page >> 6) & 3;
|
||||
int size = 0;
|
||||
|
||||
page &= 0x3f;
|
||||
|
||||
@@ -257,14 +256,14 @@ scsi_disk_mode_sense(scsi_disk_t *dev, uint8_t *buf, uint32_t pos, uint8_t page,
|
||||
buf[pos++] = 0;
|
||||
}
|
||||
|
||||
for (i = 0; i < 0x40; i++) {
|
||||
for (uint8_t i = 0; i < 0x40; i++) {
|
||||
if ((page == GPMODE_ALL_PAGES) || (page == i)) {
|
||||
if (scsi_disk_mode_sense_page_flags & (1LL << (uint64_t) page)) {
|
||||
buf[pos++] = scsi_disk_mode_sense_read(dev, page_control, i, 0);
|
||||
msplen = scsi_disk_mode_sense_read(dev, page_control, i, 1);
|
||||
buf[pos++] = msplen;
|
||||
scsi_disk_log("SCSI HDD %i: MODE SENSE: Page [%02X] length %i\n", dev->id, i, msplen);
|
||||
for (j = 0; j < msplen; j++)
|
||||
for (uint8_t j = 0; j < msplen; j++)
|
||||
buf[pos++] = scsi_disk_mode_sense_read(dev, page_control, i, 2 + j);
|
||||
}
|
||||
}
|
||||
@@ -535,10 +534,13 @@ scsi_disk_command(scsi_common_t *sc, uint8_t *cdb)
|
||||
{
|
||||
scsi_disk_t *dev = (scsi_disk_t *) sc;
|
||||
int32_t *BufLen;
|
||||
int32_t len, max_len, alloc_length;
|
||||
int32_t len;
|
||||
int32_t max_len;
|
||||
int32_t alloc_length;
|
||||
int pos = 0;
|
||||
int idx = 0;
|
||||
unsigned size_idx, preamble_len;
|
||||
unsigned size_idx;
|
||||
unsigned preamble_len;
|
||||
uint32_t last_sector = 0;
|
||||
char device_identify[9] = { '8', '6', 'B', '_', 'H', 'D', '0', '0', 0 };
|
||||
char device_identify_ex[15] = { '8', '6', 'B', '_', 'H', 'D', '0', '0', ' ', 'v', '1', '.', '0', '0', 0 };
|
||||
@@ -1050,11 +1052,20 @@ scsi_disk_phase_data_out(scsi_common_t *sc)
|
||||
int i;
|
||||
int32_t *BufLen = &scsi_devices[scsi_bus][scsi_id].buffer_length;
|
||||
uint32_t last_sector = hdd_image_get_last_sector(dev->id);
|
||||
uint32_t c, h, s, last_to_write = 0;
|
||||
uint16_t block_desc_len, pos;
|
||||
uint32_t c;
|
||||
uint32_t h;
|
||||
uint32_t s;
|
||||
uint32_t last_to_write = 0;
|
||||
uint16_t block_desc_len;
|
||||
uint16_t pos;
|
||||
uint16_t param_list_len;
|
||||
uint8_t hdr_len, val, old_val, ch, error = 0;
|
||||
uint8_t page, page_len;
|
||||
uint8_t hdr_len;
|
||||
uint8_t val;
|
||||
uint8_t old_val;
|
||||
uint8_t ch;
|
||||
uint8_t error = 0;
|
||||
uint8_t page;
|
||||
uint8_t page_len;
|
||||
|
||||
if (!*BufLen) {
|
||||
scsi_disk_set_phase(dev, SCSI_PHASE_STATUS);
|
||||
@@ -1185,12 +1196,12 @@ scsi_disk_phase_data_out(scsi_common_t *sc)
|
||||
void
|
||||
scsi_disk_hard_reset(void)
|
||||
{
|
||||
int c;
|
||||
scsi_disk_t *dev;
|
||||
scsi_device_t *sd;
|
||||
uint8_t scsi_bus, scsi_id;
|
||||
uint8_t scsi_bus;
|
||||
uint8_t scsi_id;
|
||||
|
||||
for (c = 0; c < HDD_NUM; c++) {
|
||||
for (uint8_t c = 0; c < HDD_NUM; c++) {
|
||||
if (hdd[c].bus == HDD_BUS_SCSI) {
|
||||
scsi_disk_log("SCSI disk hard_reset drive=%d\n", c);
|
||||
|
||||
@@ -1247,10 +1258,10 @@ void
|
||||
scsi_disk_close(void)
|
||||
{
|
||||
scsi_disk_t *dev;
|
||||
int c;
|
||||
uint8_t scsi_bus, scsi_id;
|
||||
uint8_t scsi_bus;
|
||||
uint8_t scsi_id;
|
||||
|
||||
for (c = 0; c < HDD_NUM; c++) {
|
||||
for (uint8_t c = 0; c < HDD_NUM; c++) {
|
||||
if (hdd[c].bus == HDD_BUS_SCSI) {
|
||||
scsi_bus = (hdd[c].scsi_id >> 4) & 0x0f;
|
||||
scsi_id = hdd[c].scsi_id & 0x0f;
|
||||
|
||||
@@ -217,14 +217,12 @@ ncr_irq(ncr5380_t *ncr_dev, ncr_t *ncr, int set_irq)
|
||||
static int
|
||||
get_dev_id(uint8_t data)
|
||||
{
|
||||
int c;
|
||||
|
||||
for (c = 0; c < SCSI_ID_MAX; c++) {
|
||||
for (uint8_t c = 0; c < SCSI_ID_MAX; c++) {
|
||||
if (data & (1 << c))
|
||||
return (c);
|
||||
return c;
|
||||
}
|
||||
|
||||
return (-1);
|
||||
return -1;
|
||||
}
|
||||
|
||||
static int
|
||||
@@ -718,7 +716,8 @@ ncr_read(uint16_t port, void *priv)
|
||||
ncr5380_t *ncr_dev = (ncr5380_t *) priv;
|
||||
ncr_t *ncr = &ncr_dev->ncr;
|
||||
uint8_t ret = 0xff;
|
||||
int bus, bus_state;
|
||||
int bus;
|
||||
int bus_state;
|
||||
|
||||
switch (port & 7) {
|
||||
case 0: /* Current SCSI data */
|
||||
@@ -909,7 +908,7 @@ memio_read(uint32_t addr, void *priv)
|
||||
ncr_log("memio_read(%08x)=%02x\n", addr, ret);
|
||||
#endif
|
||||
|
||||
return (ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* Memory-mapped I/O WRITE handler. */
|
||||
@@ -1082,7 +1081,7 @@ t130b_out(uint16_t port, uint8_t val, void *priv)
|
||||
static void
|
||||
ncr_dma_send(ncr5380_t *ncr_dev, ncr_t *ncr, scsi_device_t *dev)
|
||||
{
|
||||
int bus, c = 0;
|
||||
int bus;
|
||||
uint8_t data;
|
||||
|
||||
if (scsi_device_get_callback(dev) > 0.0)
|
||||
@@ -1090,7 +1089,7 @@ ncr_dma_send(ncr5380_t *ncr_dev, ncr_t *ncr, scsi_device_t *dev)
|
||||
else
|
||||
ncr_timer_on(ncr_dev, ncr, 0);
|
||||
|
||||
for (c = 0; c < 10; c++) {
|
||||
for (uint8_t c = 0; c < 10; c++) {
|
||||
ncr_bus_read(ncr_dev);
|
||||
if (ncr->cur_bus & BUS_REQ)
|
||||
break;
|
||||
@@ -1161,7 +1160,7 @@ ncr_dma_send(ncr5380_t *ncr_dev, ncr_t *ncr, scsi_device_t *dev)
|
||||
static void
|
||||
ncr_dma_initiator_receive(ncr5380_t *ncr_dev, ncr_t *ncr, scsi_device_t *dev)
|
||||
{
|
||||
int bus, c = 0;
|
||||
int bus;
|
||||
uint8_t temp;
|
||||
|
||||
if (scsi_device_get_callback(dev) > 0.0) {
|
||||
@@ -1170,7 +1169,7 @@ ncr_dma_initiator_receive(ncr5380_t *ncr_dev, ncr_t *ncr, scsi_device_t *dev)
|
||||
ncr_timer_on(ncr_dev, ncr, 0);
|
||||
}
|
||||
|
||||
for (c = 0; c < 10; c++) {
|
||||
for (uint8_t c = 0; c < 10; c++) {
|
||||
ncr_bus_read(ncr_dev);
|
||||
if (ncr->cur_bus & BUS_REQ)
|
||||
break;
|
||||
@@ -1376,7 +1375,7 @@ t128_read(uint32_t addr, void *priv)
|
||||
}
|
||||
}
|
||||
|
||||
return (ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -1600,7 +1599,7 @@ ncr_init(const device_t *info)
|
||||
}
|
||||
timer_add(&ncr_dev->timer, ncr_callback, ncr_dev, 0);
|
||||
|
||||
return (ncr_dev);
|
||||
return ncr_dev;
|
||||
}
|
||||
|
||||
static void
|
||||
|
||||
@@ -451,13 +451,11 @@ ncr53c8xx_soft_reset(ncr53c8xx_t *dev)
|
||||
static void
|
||||
ncr53c8xx_read(ncr53c8xx_t *dev, uint32_t addr, uint8_t *buf, uint32_t len)
|
||||
{
|
||||
uint32_t i = 0;
|
||||
|
||||
ncr53c8xx_log("ncr53c8xx_read(): %08X-%08X, length %i\n", addr, (addr + len - 1), len);
|
||||
|
||||
if (dev->dmode & NCR_DMODE_SIOM) {
|
||||
ncr53c8xx_log("NCR 810: Reading from I/O address %04X\n", (uint16_t) addr);
|
||||
for (i = 0; i < len; i++)
|
||||
for (uint32_t i = 0; i < len; i++)
|
||||
buf[i] = inb((uint16_t) (addr + i));
|
||||
} else {
|
||||
ncr53c8xx_log("NCR 810: Reading from memory address %08X\n", addr);
|
||||
@@ -468,13 +466,11 @@ ncr53c8xx_read(ncr53c8xx_t *dev, uint32_t addr, uint8_t *buf, uint32_t len)
|
||||
static void
|
||||
ncr53c8xx_write(ncr53c8xx_t *dev, uint32_t addr, uint8_t *buf, uint32_t len)
|
||||
{
|
||||
uint32_t i = 0;
|
||||
|
||||
ncr53c8xx_log("ncr53c8xx_write(): %08X-%08X, length %i\n", addr, (addr + len - 1), len);
|
||||
|
||||
if (dev->dmode & NCR_DMODE_DIOM) {
|
||||
ncr53c8xx_log("NCR 810: Writing to I/O address %04X\n", (uint16_t) addr);
|
||||
for (i = 0; i < len; i++)
|
||||
for (uint32_t i = 0; i < len; i++)
|
||||
outb((uint16_t) (addr + i), buf[i]);
|
||||
} else {
|
||||
ncr53c8xx_log("NCR 810: Writing to memory address %08X\n", addr);
|
||||
@@ -637,12 +633,13 @@ ncr53c8xx_command_complete(void *priv, uint32_t status)
|
||||
static void
|
||||
ncr53c8xx_do_dma(ncr53c8xx_t *dev, int out, uint8_t id)
|
||||
{
|
||||
uint32_t addr, tdbc;
|
||||
uint32_t addr;
|
||||
uint32_t tdbc;
|
||||
int count;
|
||||
|
||||
scsi_device_t *sd = &scsi_devices[dev->bus][id];
|
||||
|
||||
if ((!scsi_device_present(sd))) {
|
||||
if (!scsi_device_present(sd)) {
|
||||
ncr53c8xx_log("(ID=%02i LUN=%02i) SCSI Command 0x%02x: Device not present when attempting to do DMA\n", id, dev->current_lun, dev->last_command);
|
||||
return;
|
||||
}
|
||||
@@ -878,7 +875,8 @@ static void
|
||||
ncr53c8xx_do_msgout(ncr53c8xx_t *dev, uint8_t id)
|
||||
{
|
||||
uint8_t msg;
|
||||
int len, arg;
|
||||
int len;
|
||||
int arg;
|
||||
scsi_device_t *sd;
|
||||
|
||||
sd = &scsi_devices[dev->bus][id];
|
||||
@@ -1000,10 +998,26 @@ ncr53c8xx_memcpy(ncr53c8xx_t *dev, uint32_t dest, uint32_t src, int count)
|
||||
static void
|
||||
ncr53c8xx_process_script(ncr53c8xx_t *dev)
|
||||
{
|
||||
uint32_t insn, addr, id, buf[2], dest;
|
||||
int opcode, insn_processed = 0, reg, operator, cond, jmp, n, i, c;
|
||||
int32_t offset;
|
||||
uint8_t op0, op1, data8, mask, data[7];
|
||||
uint32_t insn;
|
||||
uint32_t addr;
|
||||
uint32_t id;
|
||||
uint32_t buf[2];
|
||||
uint32_t dest;
|
||||
int opcode;
|
||||
int insn_processed = 0;
|
||||
int reg;
|
||||
int operator;
|
||||
int cond;
|
||||
int jmp;
|
||||
int n;
|
||||
int i;
|
||||
int c;
|
||||
int32_t offset;
|
||||
uint8_t op0;
|
||||
uint8_t op1;
|
||||
uint8_t data8;
|
||||
uint8_t mask;
|
||||
uint8_t data[7];
|
||||
|
||||
dev->sstop = 0;
|
||||
again:
|
||||
@@ -2329,7 +2343,7 @@ ncr53c8xx_pci_read(int func, int addr, void *p)
|
||||
return 0x40;
|
||||
}
|
||||
|
||||
return (0);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -2570,7 +2584,7 @@ ncr53c8xx_init(const device_t *info)
|
||||
|
||||
timer_add(&dev->timer, ncr53c8xx_callback, dev, 0);
|
||||
|
||||
return (dev);
|
||||
return dev;
|
||||
}
|
||||
|
||||
static void
|
||||
|
||||
@@ -360,7 +360,8 @@ static uint32_t
|
||||
esp_get_cmd(esp_t *dev, uint32_t maxlen)
|
||||
{
|
||||
uint8_t buf[ESP_CMDFIFO_SZ];
|
||||
uint32_t dmalen, n;
|
||||
uint32_t dmalen;
|
||||
uint32_t n;
|
||||
|
||||
dev->id = dev->wregs[ESP_WBUSID] & BUSID_DID;
|
||||
if (dev->dma) {
|
||||
@@ -1313,7 +1314,8 @@ esp_io_pci_read(esp_t *dev, uint32_t addr, unsigned int size)
|
||||
static void
|
||||
esp_io_pci_write(esp_t *dev, uint32_t addr, uint32_t val, unsigned int size)
|
||||
{
|
||||
uint32_t current, mask;
|
||||
uint32_t current;
|
||||
uint32_t mask;
|
||||
int shift;
|
||||
|
||||
addr &= 0x7f;
|
||||
@@ -1691,7 +1693,7 @@ esp_pci_read(int func, int addr, void *p)
|
||||
return esp_pci_regs[addr];
|
||||
}
|
||||
|
||||
return (0);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -1844,7 +1846,7 @@ dc390_init(const device_t *info)
|
||||
|
||||
timer_add(&dev->timer, esp_callback, dev, 0);
|
||||
|
||||
return (dev);
|
||||
return dev;
|
||||
}
|
||||
|
||||
static uint16_t
|
||||
@@ -2011,7 +2013,7 @@ ncr53c90_mca_init(const device_t *info)
|
||||
|
||||
timer_add(&dev->timer, esp_callback, dev, 0);
|
||||
|
||||
return (dev);
|
||||
return dev;
|
||||
}
|
||||
|
||||
static void
|
||||
|
||||
@@ -228,10 +228,9 @@ static void
|
||||
spock_rethink_irqs(spock_t *scsi)
|
||||
{
|
||||
int irq_pending = 0;
|
||||
int c;
|
||||
|
||||
if (!scsi->irq_status) {
|
||||
for (c = 0; c < SCSI_ID_MAX; c++) {
|
||||
for (uint8_t c = 0; c < SCSI_ID_MAX; c++) {
|
||||
if (scsi->irq_requests[c] != IRQ_TYPE_NONE) {
|
||||
/* Found IRQ */
|
||||
scsi->irq_status = c | (scsi->irq_requests[c] << 4);
|
||||
@@ -414,21 +413,21 @@ spock_rd_sge(spock_t *scsi, uint32_t Address, SGE *SG)
|
||||
static int
|
||||
spock_get_len(spock_t *scsi, scb_t *scb)
|
||||
{
|
||||
uint32_t DataToTransfer = 0, i = 0;
|
||||
uint32_t DataToTransfer = 0;
|
||||
|
||||
spock_log("Data Buffer write: length %d, pointer 0x%04X\n",
|
||||
scsi->data_len, scsi->data_ptr);
|
||||
|
||||
if (!scsi->data_len)
|
||||
return (0);
|
||||
return 0;
|
||||
|
||||
if (scb->enable & ENABLE_PT) {
|
||||
for (i = 0; i < scsi->data_len; i += 8) {
|
||||
for (uint32_t i = 0; i < scsi->data_len; i += 8) {
|
||||
spock_rd_sge(scsi, scsi->data_ptr + i, &scb->sge);
|
||||
|
||||
DataToTransfer += scb->sge.sys_buf_byte_count;
|
||||
}
|
||||
return (DataToTransfer);
|
||||
return DataToTransfer;
|
||||
} else {
|
||||
return (scsi->data_len);
|
||||
}
|
||||
@@ -437,8 +436,11 @@ spock_get_len(spock_t *scsi, scb_t *scb)
|
||||
static void
|
||||
spock_process_imm_cmd(spock_t *scsi)
|
||||
{
|
||||
int i, j = 0;
|
||||
int adapter_id, phys_id, lun_id;
|
||||
int i;
|
||||
int j = 0;
|
||||
int adapter_id;
|
||||
int phys_id;
|
||||
int lun_id;
|
||||
|
||||
scsi->assign = 0;
|
||||
|
||||
@@ -516,7 +518,8 @@ spock_process_imm_cmd(spock_t *scsi)
|
||||
static void
|
||||
spock_execute_cmd(spock_t *scsi, scb_t *scb)
|
||||
{
|
||||
int c, j = 0;
|
||||
int c;
|
||||
int j = 0;
|
||||
int old_scb_state;
|
||||
|
||||
if (scsi->in_reset) {
|
||||
@@ -847,7 +850,6 @@ spock_execute_cmd(spock_t *scsi, scb_t *scb)
|
||||
static void
|
||||
spock_process_scsi(spock_t *scsi, scb_t *scb)
|
||||
{
|
||||
int c;
|
||||
double p;
|
||||
scsi_device_t *sd;
|
||||
|
||||
@@ -910,7 +912,7 @@ spock_process_scsi(spock_t *scsi, scb_t *scb)
|
||||
uint32_t Address;
|
||||
|
||||
if (scb->sge.sys_buf_byte_count > 0) {
|
||||
for (c = 0; c < scsi->data_len; c += 8) {
|
||||
for (uint32_t c = 0; c < scsi->data_len; c += 8) {
|
||||
spock_rd_sge(scsi, scsi->data_ptr + c, &scb->sge);
|
||||
|
||||
Address = scb->sge.sys_buf_addr;
|
||||
@@ -1077,7 +1079,6 @@ static void
|
||||
spock_mca_reset(void *priv)
|
||||
{
|
||||
spock_t *scsi = (spock_t *) priv;
|
||||
int i;
|
||||
|
||||
scsi->in_reset = 2;
|
||||
scsi->cmd_timer = SPOCK_TIME * 50;
|
||||
@@ -1089,7 +1090,7 @@ spock_mca_reset(void *priv)
|
||||
scsi->basic_ctrl = 0;
|
||||
|
||||
/* Reset all devices on controller reset. */
|
||||
for (i = 0; i < 8; i++) {
|
||||
for (uint8_t i = 0; i < 8; i++) {
|
||||
scsi_device_reset(&scsi_devices[scsi->bus][i]);
|
||||
scsi->present[i] = 0;
|
||||
}
|
||||
@@ -1098,7 +1099,6 @@ spock_mca_reset(void *priv)
|
||||
static void *
|
||||
spock_init(const device_t *info)
|
||||
{
|
||||
int c;
|
||||
spock_t *scsi = malloc(sizeof(spock_t));
|
||||
memset(scsi, 0x00, sizeof(spock_t));
|
||||
|
||||
@@ -1128,7 +1128,7 @@ spock_init(const device_t *info)
|
||||
scsi->cmd_timer = SPOCK_TIME * 50;
|
||||
scsi->status = STATUS_BUSY;
|
||||
|
||||
for (c = 0; c < (SCSI_ID_MAX - 1); c++) {
|
||||
for (uint8_t c = 0; c < (SCSI_ID_MAX - 1); c++) {
|
||||
scsi->dev_id[c].phys_id = -1;
|
||||
}
|
||||
|
||||
|
||||
@@ -238,9 +238,9 @@ completion_code(uint8_t *sense)
|
||||
case ASC_MEDIUM_NOT_PRESENT:
|
||||
ret = 0xaa;
|
||||
break;
|
||||
};
|
||||
}
|
||||
|
||||
return (ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
static uint8_t
|
||||
@@ -256,7 +256,7 @@ x54x_bios_scsi_command(scsi_device_t *dev, uint8_t *cdb, uint8_t *buf, int len,
|
||||
if (len > 0) {
|
||||
if (dev->buffer_length == -1) {
|
||||
fatal("Buffer length -1 when doing SCSI DMA\n");
|
||||
return (0xff);
|
||||
return 0xff;
|
||||
}
|
||||
|
||||
if (dev->phase == SCSI_PHASE_DATA_IN) {
|
||||
@@ -292,7 +292,7 @@ x54x_bios_read_capacity(scsi_device_t *sd, uint8_t *buf, int transfer_size)
|
||||
|
||||
free(cdb);
|
||||
|
||||
return (ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
static uint8_t
|
||||
@@ -311,7 +311,7 @@ x54x_bios_inquiry(scsi_device_t *sd, uint8_t *buf, int transfer_size)
|
||||
|
||||
free(cdb);
|
||||
|
||||
return (ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
static uint8_t
|
||||
@@ -327,7 +327,7 @@ x54x_bios_command_08(scsi_device_t *sd, uint8_t *buffer, int transfer_size)
|
||||
ret = x54x_bios_read_capacity(sd, rcbuf, transfer_size);
|
||||
if (ret) {
|
||||
free(rcbuf);
|
||||
return (ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
memset(buffer, 0x00, 6);
|
||||
@@ -340,15 +340,15 @@ x54x_bios_command_08(scsi_device_t *sd, uint8_t *buffer, int transfer_size)
|
||||
|
||||
free(rcbuf);
|
||||
|
||||
return (0);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int
|
||||
x54x_bios_command_15(scsi_device_t *sd, uint8_t *buffer, int transfer_size)
|
||||
{
|
||||
uint8_t *inqbuf, *rcbuf;
|
||||
uint8_t *inqbuf;
|
||||
uint8_t *rcbuf;
|
||||
uint8_t ret;
|
||||
int i;
|
||||
|
||||
memset(buffer, 0x00, 6);
|
||||
|
||||
@@ -356,7 +356,7 @@ x54x_bios_command_15(scsi_device_t *sd, uint8_t *buffer, int transfer_size)
|
||||
ret = x54x_bios_inquiry(sd, inqbuf, transfer_size);
|
||||
if (ret) {
|
||||
free(inqbuf);
|
||||
return (ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
buffer[4] = inqbuf[0];
|
||||
@@ -367,10 +367,10 @@ x54x_bios_command_15(scsi_device_t *sd, uint8_t *buffer, int transfer_size)
|
||||
if (ret) {
|
||||
free(rcbuf);
|
||||
free(inqbuf);
|
||||
return (ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
for (i = 0; i < 4; i++)
|
||||
for (uint8_t i = 0; i < 4; i++)
|
||||
buffer[i] = rcbuf[i];
|
||||
|
||||
x54x_log("BIOS Command 0x15: %02X %02X %02X %02X %02X %02X\n",
|
||||
@@ -379,7 +379,7 @@ x54x_bios_command_15(scsi_device_t *sd, uint8_t *buffer, int transfer_size)
|
||||
free(rcbuf);
|
||||
free(inqbuf);
|
||||
|
||||
return (0);
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* This returns the completion code. */
|
||||
@@ -428,7 +428,7 @@ x54x_bios_command(x54x_t *x54x, uint8_t max_id, BIOSCMD *cmd, int8_t islba)
|
||||
|
||||
if ((dev->type == SCSI_REMOVABLE_CDROM) && !(x54x->flags & X54X_CDROM_BOOT)) {
|
||||
x54x_log("BIOS Target ID %i is CD-ROM on unsupported BIOS\n", cmd->id);
|
||||
return (0x80);
|
||||
return 0x80;
|
||||
} else {
|
||||
dma_address = ADDR_TO_U32(cmd->dma_address);
|
||||
|
||||
@@ -458,7 +458,7 @@ x54x_bios_command(x54x_t *x54x, uint8_t max_id, BIOSCMD *cmd, int8_t islba)
|
||||
dma_bm_write(dma_address, scsi_device_sense(dev), 14, x54x->transfer_size);
|
||||
}
|
||||
|
||||
return (0);
|
||||
return 0;
|
||||
break;
|
||||
|
||||
case 0x02: /* Read Desired Sectors to Memory */
|
||||
@@ -533,7 +533,7 @@ x54x_bios_command(x54x_t *x54x, uint8_t max_id, BIOSCMD *cmd, int8_t islba)
|
||||
}
|
||||
|
||||
x54x_log("BIOS Request %02X complete: %02X\n", cmd->command, ret);
|
||||
return (ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -692,10 +692,11 @@ x54x_rd_sge(x54x_t *dev, int Is24bit, uint32_t Address, SGE32 *SG)
|
||||
static int
|
||||
x54x_get_length(x54x_t *dev, Req_t *req, int Is24bit)
|
||||
{
|
||||
uint32_t DataPointer, DataLength;
|
||||
uint32_t DataPointer;
|
||||
uint32_t DataLength;
|
||||
uint32_t SGEntryLength = (Is24bit ? sizeof(SGE) : sizeof(SGE32));
|
||||
SGE32 SGBuffer;
|
||||
uint32_t DataToTransfer = 0, i = 0;
|
||||
uint32_t DataToTransfer = 0;
|
||||
|
||||
if (Is24bit) {
|
||||
DataPointer = ADDR_TO_U32(req->CmdBlock.old.DataPointer);
|
||||
@@ -709,23 +710,23 @@ x54x_get_length(x54x_t *dev, Req_t *req, int Is24bit)
|
||||
DataLength, DataPointer);
|
||||
|
||||
if (!DataLength)
|
||||
return (0);
|
||||
return 0;
|
||||
|
||||
if (req->CmdBlock.common.ControlByte != 0x03) {
|
||||
if (req->CmdBlock.common.Opcode == SCATTER_GATHER_COMMAND || req->CmdBlock.common.Opcode == SCATTER_GATHER_COMMAND_RES) {
|
||||
for (i = 0; i < DataLength; i += SGEntryLength) {
|
||||
for (uint32_t i = 0; i < DataLength; i += SGEntryLength) {
|
||||
x54x_rd_sge(dev, Is24bit, DataPointer + i, &SGBuffer);
|
||||
|
||||
DataToTransfer += SGBuffer.Segment;
|
||||
}
|
||||
return (DataToTransfer);
|
||||
return DataToTransfer;
|
||||
} else if (req->CmdBlock.common.Opcode == SCSI_INITIATOR_COMMAND || req->CmdBlock.common.Opcode == SCSI_INITIATOR_COMMAND_RES) {
|
||||
return (DataLength);
|
||||
return DataLength;
|
||||
} else {
|
||||
return (0);
|
||||
return 0;
|
||||
}
|
||||
} else {
|
||||
return (0);
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -763,9 +764,10 @@ x54x_set_residue(x54x_t *dev, Req_t *req, int32_t TransferLength)
|
||||
static void
|
||||
x54x_buf_dma_transfer(x54x_t *dev, Req_t *req, int Is24bit, int TransferLength, int dir)
|
||||
{
|
||||
uint32_t DataPointer, DataLength;
|
||||
uint32_t DataPointer;
|
||||
uint32_t DataLength;
|
||||
uint32_t SGEntryLength = (Is24bit ? sizeof(SGE) : sizeof(SGE32));
|
||||
uint32_t Address, i;
|
||||
uint32_t Address;
|
||||
int32_t BufLen = scsi_devices[dev->bus][req->TargetID].buffer_length;
|
||||
uint8_t read_from_host = (dir && ((req->CmdBlock.common.ControlByte == CCB_DATA_XFER_OUT) || (req->CmdBlock.common.ControlByte == 0x00)));
|
||||
uint8_t write_to_host = (!dir && ((req->CmdBlock.common.ControlByte == CCB_DATA_XFER_IN) || (req->CmdBlock.common.ControlByte == 0x00)));
|
||||
@@ -789,7 +791,7 @@ x54x_buf_dma_transfer(x54x_t *dev, Req_t *req, int Is24bit, int TransferLength,
|
||||
/* If the control byte is 0x00, it means that the transfer direction is set up by the SCSI command without
|
||||
checking its length, so do this procedure for both no read/write commands. */
|
||||
if ((DataLength > 0) && (req->CmdBlock.common.ControlByte < 0x03)) {
|
||||
for (i = 0; i < DataLength; i += SGEntryLength) {
|
||||
for (uint32_t i = 0; i < DataLength; i += SGEntryLength) {
|
||||
x54x_rd_sge(dev, Is24bit, DataPointer + i, &SGBuffer);
|
||||
|
||||
Address = SGBuffer.SegmentPointer;
|
||||
@@ -838,7 +840,7 @@ ConvertSenseLength(uint8_t RequestSenseLength)
|
||||
|
||||
x54x_log("Request Sense length %i\n", RequestSenseLength);
|
||||
|
||||
return (RequestSenseLength);
|
||||
return RequestSenseLength;
|
||||
}
|
||||
|
||||
uint32_t
|
||||
@@ -852,7 +854,7 @@ SenseBufferPointer(Req_t *req)
|
||||
SenseBufferAddress = req->CmdBlock.new.SensePointer;
|
||||
}
|
||||
|
||||
return (SenseBufferAddress);
|
||||
return SenseBufferAddress;
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -888,7 +890,7 @@ x54x_scsi_cmd(x54x_t *dev)
|
||||
{
|
||||
Req_t *req = &dev->Req;
|
||||
uint8_t bit24 = !!req->Is24bit;
|
||||
uint32_t i, target_cdb_len = 12;
|
||||
uint32_t target_cdb_len = 12;
|
||||
scsi_device_t *sd;
|
||||
|
||||
sd = &scsi_devices[dev->bus][req->TargetID];
|
||||
@@ -904,7 +906,7 @@ x54x_scsi_cmd(x54x_t *dev)
|
||||
x54x_log("SCSI command being executed on ID %i, LUN %i\n", req->TargetID, req->LUN);
|
||||
|
||||
x54x_log("SCSI CDB[0]=0x%02X\n", req->CmdBlock.common.Cdb[0]);
|
||||
for (i = 1; i < req->CmdBlock.common.CdbLength; i++)
|
||||
for (uint8_t i = 1; i < req->CmdBlock.common.CdbLength; i++)
|
||||
x54x_log("SCSI CDB[%i]=%i\n", i, req->CmdBlock.common.Cdb[i]);
|
||||
|
||||
memset(dev->temp_cdb, 0x00, target_cdb_len);
|
||||
@@ -1036,7 +1038,8 @@ static void
|
||||
x54x_req_setup(x54x_t *dev, uint32_t CCBPointer, Mailbox32_t *Mailbox32)
|
||||
{
|
||||
Req_t *req = &dev->Req;
|
||||
uint8_t id, lun;
|
||||
uint8_t id;
|
||||
uint8_t lun;
|
||||
scsi_device_t *sd;
|
||||
|
||||
/* Fetch data from the Command Control Block. */
|
||||
@@ -1141,7 +1144,7 @@ x54x_mbo(x54x_t *dev, Mailbox32_t *Mailbox32)
|
||||
x54x_add_to_period(dev, sizeof(Mailbox32_t));
|
||||
}
|
||||
|
||||
return (Outgoing);
|
||||
return Outgoing;
|
||||
}
|
||||
|
||||
uint8_t
|
||||
@@ -1169,10 +1172,10 @@ x54x_mbo_process(x54x_t *dev)
|
||||
else
|
||||
dev->MailboxReq--;
|
||||
|
||||
return (1);
|
||||
return 1;
|
||||
}
|
||||
|
||||
return (0);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -1218,7 +1221,8 @@ x54x_cmd_callback(void *priv)
|
||||
double period;
|
||||
x54x_t *dev = (x54x_t *) priv;
|
||||
|
||||
int mailboxes_present, bios_mailboxes_present;
|
||||
int mailboxes_present;
|
||||
int bios_mailboxes_present;
|
||||
|
||||
mailboxes_present = (!(dev->Status & STAT_INIT) && dev->MailboxInit && dev->MailboxReq);
|
||||
bios_mailboxes_present = (dev->ven_callback && dev->BIOSMailboxInit && dev->BIOSMailboxReq);
|
||||
@@ -1354,7 +1358,7 @@ x54x_in(uint16_t port, void *priv)
|
||||
x54x_log("x54x_in(): %04X, %02X\n", port, ret);
|
||||
#endif
|
||||
|
||||
return (ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
static uint16_t
|
||||
@@ -1398,8 +1402,6 @@ x54x_reset_poll(void *priv)
|
||||
static void
|
||||
x54x_reset(x54x_t *dev)
|
||||
{
|
||||
int i;
|
||||
|
||||
clear_irq(dev);
|
||||
if (dev->flags & X54X_INT_GEOM_WRITABLE)
|
||||
dev->Geometry = 0x90;
|
||||
@@ -1421,7 +1423,7 @@ x54x_reset(x54x_t *dev)
|
||||
dev->MailboxOutPosCur = 0;
|
||||
|
||||
/* Reset all devices on controller reset. */
|
||||
for (i = 0; i < 16; i++)
|
||||
for (uint8_t i = 0; i < 16; i++)
|
||||
scsi_device_reset(&scsi_devices[dev->bus][i]);
|
||||
|
||||
if (dev->ven_reset)
|
||||
@@ -1878,7 +1880,7 @@ x54x_init(const device_t *info)
|
||||
/* Allocate control block and set up basic stuff. */
|
||||
dev = malloc(sizeof(x54x_t));
|
||||
if (dev == NULL)
|
||||
return (dev);
|
||||
return dev;
|
||||
memset(dev, 0x00, sizeof(x54x_t));
|
||||
dev->type = info->local;
|
||||
|
||||
@@ -1895,7 +1897,7 @@ x54x_init(const device_t *info)
|
||||
else
|
||||
dev->transfer_size = 2;
|
||||
|
||||
return (dev);
|
||||
return dev;
|
||||
}
|
||||
|
||||
void
|
||||
|
||||
@@ -134,7 +134,8 @@ static void
|
||||
i82091aa_write(uint16_t port, uint8_t val, void *priv)
|
||||
{
|
||||
i82091aa_t *dev = (i82091aa_t *) priv;
|
||||
uint8_t index, valxor;
|
||||
uint8_t index;
|
||||
uint8_t valxor;
|
||||
uint8_t uart = (dev->cur_reg >> 4) - 0x03;
|
||||
uint8_t *reg = &(dev->regs[dev->cur_reg]);
|
||||
|
||||
@@ -199,7 +200,8 @@ uint8_t
|
||||
i82091aa_read(uint16_t port, void *priv)
|
||||
{
|
||||
i82091aa_t *dev = (i82091aa_t *) priv;
|
||||
uint8_t ret = 0xff, index;
|
||||
uint8_t ret = 0xff;
|
||||
uint8_t index;
|
||||
|
||||
index = (port & 1) ? 0 : 1;
|
||||
|
||||
|
||||
@@ -131,15 +131,13 @@ ali5123_serial_handler(ali5123_t *dev, int uart)
|
||||
static void
|
||||
ali5123_reset(ali5123_t *dev)
|
||||
{
|
||||
int i = 0;
|
||||
|
||||
memset(dev->regs, 0, 48);
|
||||
|
||||
dev->regs[0x20] = 0x43;
|
||||
dev->regs[0x21] = 0x15;
|
||||
dev->regs[0x2d] = 0x20;
|
||||
|
||||
for (i = 0; i < 13; i++)
|
||||
for (uint8_t i = 0; i < 13; i++)
|
||||
memset(dev->ld_regs[i], 0, 256);
|
||||
|
||||
/* Logical device 0: FDD */
|
||||
@@ -209,7 +207,8 @@ ali5123_write(uint16_t port, uint8_t val, void *priv)
|
||||
{
|
||||
ali5123_t *dev = (ali5123_t *) priv;
|
||||
uint8_t index = (port & 1) ? 0 : 1;
|
||||
uint8_t valxor = 0x00, cur_ld = dev->regs[7];
|
||||
uint8_t valxor = 0x00;
|
||||
uint8_t cur_ld = dev->regs[7];
|
||||
|
||||
if (index) {
|
||||
if (((val == 0x51) && (!dev->tries) && (!dev->locked)) || ((val == 0x23) && (dev->tries) && (!dev->locked))) {
|
||||
@@ -402,7 +401,8 @@ ali5123_read(uint16_t port, void *priv)
|
||||
{
|
||||
ali5123_t *dev = (ali5123_t *) priv;
|
||||
uint8_t index = (port & 1) ? 0 : 1;
|
||||
uint8_t ret = 0xff, cur_ld;
|
||||
uint8_t ret = 0xff;
|
||||
uint8_t cur_ld;
|
||||
|
||||
if (dev->locked) {
|
||||
if (index)
|
||||
|
||||
@@ -234,7 +234,8 @@ fdc37c67x_write(uint16_t port, uint8_t val, void *priv)
|
||||
{
|
||||
fdc37c67x_t *dev = (fdc37c67x_t *) priv;
|
||||
uint8_t index = (port & 1) ? 0 : 1;
|
||||
uint8_t valxor = 0x00, keep = 0x00;
|
||||
uint8_t valxor = 0x00;
|
||||
uint8_t keep = 0x00;
|
||||
|
||||
if (index) {
|
||||
if ((val == 0x55) && !dev->locked) {
|
||||
@@ -477,8 +478,6 @@ fdc37c67x_read(uint16_t port, void *priv)
|
||||
static void
|
||||
fdc37c67x_reset(fdc37c67x_t *dev)
|
||||
{
|
||||
int i = 0;
|
||||
|
||||
memset(dev->regs, 0, 48);
|
||||
|
||||
dev->regs[0x03] = 0x03;
|
||||
@@ -488,7 +487,7 @@ fdc37c67x_reset(fdc37c67x_t *dev)
|
||||
dev->regs[0x26] = 0xf0;
|
||||
dev->regs[0x27] = 0x03;
|
||||
|
||||
for (i = 0; i < 11; i++)
|
||||
for (uint8_t i = 0; i < 11; i++)
|
||||
memset(dev->ld_regs[i], 0, 256);
|
||||
|
||||
/* Logical device 0: FDD */
|
||||
|
||||
@@ -339,7 +339,8 @@ fdc37c93x_write(uint16_t port, uint8_t val, void *priv)
|
||||
{
|
||||
fdc37c93x_t *dev = (fdc37c93x_t *) priv;
|
||||
uint8_t index = (port & 1) ? 0 : 1;
|
||||
uint8_t valxor = 0x00, keep = 0x00;
|
||||
uint8_t valxor = 0x00;
|
||||
uint8_t keep = 0x00;
|
||||
|
||||
/* Compaq Presario 4500: Unlock at FB, Register at EA, Data at EB, Lock at F9. */
|
||||
if ((port == 0xea) || (port == 0xf9) || (port == 0xfb))
|
||||
@@ -669,8 +670,6 @@ fdc37c93x_read(uint16_t port, void *priv)
|
||||
static void
|
||||
fdc37c93x_reset(fdc37c93x_t *dev)
|
||||
{
|
||||
int i = 0;
|
||||
|
||||
memset(dev->regs, 0, 48);
|
||||
|
||||
dev->regs[0x03] = 0x03;
|
||||
@@ -681,7 +680,7 @@ fdc37c93x_reset(fdc37c93x_t *dev)
|
||||
dev->regs[0x26] = 0xF0;
|
||||
dev->regs[0x27] = 0x03;
|
||||
|
||||
for (i = 0; i < 11; i++)
|
||||
for (uint8_t i = 0; i < 11; i++)
|
||||
memset(dev->ld_regs[i], 0, 256);
|
||||
|
||||
/* Logical device 0: FDD */
|
||||
|
||||
@@ -249,10 +249,9 @@ static void
|
||||
fdc37m60x_reset(void *priv)
|
||||
{
|
||||
fdc37m60x_t *dev = (fdc37m60x_t *) priv;
|
||||
uint8_t i;
|
||||
|
||||
memset(dev->regs, 0, sizeof(dev->regs));
|
||||
for (i = 0; i < 10; i++)
|
||||
for (uint8_t i = 0; i < 10; i++)
|
||||
memset(dev->device_regs[i], 0, sizeof(dev->device_regs[i]));
|
||||
|
||||
dev->regs[0x20] = 0x47;
|
||||
|
||||
@@ -85,7 +85,8 @@ static void
|
||||
lpt1_handler(pc87306_t *dev)
|
||||
{
|
||||
int temp;
|
||||
uint16_t lptba, lpt_port = LPT1_ADDR;
|
||||
uint16_t lptba;
|
||||
uint16_t lpt_port = LPT1_ADDR;
|
||||
uint8_t lpt_irq = LPT2_IRQ;
|
||||
|
||||
temp = dev->regs[0x01] & 3;
|
||||
@@ -126,8 +127,10 @@ static void
|
||||
serial_handler(pc87306_t *dev, int uart)
|
||||
{
|
||||
int temp;
|
||||
uint8_t fer_irq, pnp1_irq;
|
||||
uint8_t fer_shift, pnp_shift;
|
||||
uint8_t fer_irq;
|
||||
uint8_t pnp1_irq;
|
||||
uint8_t fer_shift;
|
||||
uint8_t pnp_shift;
|
||||
uint8_t irq;
|
||||
|
||||
temp = (dev->regs[1] >> (2 << uart)) & 3;
|
||||
@@ -187,7 +190,8 @@ static void
|
||||
pc87306_write(uint16_t port, uint8_t val, void *priv)
|
||||
{
|
||||
pc87306_t *dev = (pc87306_t *) priv;
|
||||
uint8_t index, valxor;
|
||||
uint8_t index;
|
||||
uint8_t valxor;
|
||||
|
||||
index = (port & 1) ? 0 : 1;
|
||||
|
||||
@@ -327,7 +331,8 @@ uint8_t
|
||||
pc87306_read(uint16_t port, void *priv)
|
||||
{
|
||||
pc87306_t *dev = (pc87306_t *) priv;
|
||||
uint8_t ret = 0xff, index;
|
||||
uint8_t ret = 0xff;
|
||||
uint8_t index;
|
||||
|
||||
index = (port & 1) ? 0 : 1;
|
||||
|
||||
|
||||
@@ -64,8 +64,10 @@ uint8_t
|
||||
pc87307_gpio_read(uint16_t port, void *priv)
|
||||
{
|
||||
pc87307_t *dev = (pc87307_t *) priv;
|
||||
uint8_t pins = 0xff, bank = ((port & 0xfffc) == dev->gpio_base2);
|
||||
uint8_t mask, ret = dev->gpio[bank][port & 0x0003];
|
||||
uint8_t pins = 0xff;
|
||||
uint8_t bank = ((port & 0xfffc) == dev->gpio_base2);
|
||||
uint8_t mask;
|
||||
uint8_t ret = dev->gpio[bank][port & 0x0003];
|
||||
|
||||
switch (port & 0x0003) {
|
||||
case 0x0000:
|
||||
@@ -157,7 +159,8 @@ pc87307_pm_init(pc87307_t *dev, uint16_t addr)
|
||||
static void
|
||||
fdc_handler(pc87307_t *dev)
|
||||
{
|
||||
uint8_t irq, active;
|
||||
uint8_t irq;
|
||||
uint8_t active;
|
||||
uint16_t addr;
|
||||
|
||||
fdc_remove(dev->fdc);
|
||||
@@ -175,7 +178,8 @@ fdc_handler(pc87307_t *dev)
|
||||
static void
|
||||
lpt1_handler(pc87307_t *dev)
|
||||
{
|
||||
uint8_t irq, active;
|
||||
uint8_t irq;
|
||||
uint8_t active;
|
||||
uint16_t addr;
|
||||
|
||||
lpt1_remove();
|
||||
@@ -193,7 +197,8 @@ lpt1_handler(pc87307_t *dev)
|
||||
static void
|
||||
serial_handler(pc87307_t *dev, int uart)
|
||||
{
|
||||
uint8_t irq, active;
|
||||
uint8_t irq;
|
||||
uint8_t active;
|
||||
uint16_t addr;
|
||||
|
||||
serial_remove(dev->uart[uart]);
|
||||
@@ -424,7 +429,8 @@ uint8_t
|
||||
pc87307_read(uint16_t port, void *priv)
|
||||
{
|
||||
pc87307_t *dev = (pc87307_t *) priv;
|
||||
uint8_t ret = 0xff, index;
|
||||
uint8_t ret = 0xff;
|
||||
uint8_t index;
|
||||
|
||||
index = (port & 1) ? 0 : 1;
|
||||
|
||||
@@ -445,10 +451,8 @@ pc87307_read(uint16_t port, void *priv)
|
||||
void
|
||||
pc87307_reset(pc87307_t *dev)
|
||||
{
|
||||
int i;
|
||||
|
||||
memset(dev->regs, 0x00, 0x30);
|
||||
for (i = 0; i < 256; i++)
|
||||
for (uint16_t i = 0; i < 256; i++)
|
||||
memset(dev->ld_regs[i], 0x00, 0xd0);
|
||||
memset(dev->pcregs, 0x00, 0x10);
|
||||
memset(dev->gpio, 0xff, 0x08);
|
||||
|
||||
@@ -102,7 +102,8 @@ pc87309_pm_init(pc87309_t *dev, uint16_t addr)
|
||||
static void
|
||||
fdc_handler(pc87309_t *dev)
|
||||
{
|
||||
uint8_t irq, active;
|
||||
uint8_t irq;
|
||||
uint8_t active;
|
||||
uint16_t addr;
|
||||
|
||||
fdc_remove(dev->fdc);
|
||||
@@ -120,7 +121,8 @@ fdc_handler(pc87309_t *dev)
|
||||
static void
|
||||
lpt1_handler(pc87309_t *dev)
|
||||
{
|
||||
uint8_t irq, active;
|
||||
uint8_t irq;
|
||||
uint8_t active;
|
||||
uint16_t addr;
|
||||
|
||||
lpt1_remove();
|
||||
@@ -138,7 +140,8 @@ lpt1_handler(pc87309_t *dev)
|
||||
static void
|
||||
serial_handler(pc87309_t *dev, int uart)
|
||||
{
|
||||
uint8_t irq, active;
|
||||
uint8_t irq;
|
||||
uint8_t active;
|
||||
uint16_t addr;
|
||||
|
||||
serial_remove(dev->uart[uart]);
|
||||
@@ -326,7 +329,8 @@ uint8_t
|
||||
pc87309_read(uint16_t port, void *priv)
|
||||
{
|
||||
pc87309_t *dev = (pc87309_t *) priv;
|
||||
uint8_t ret = 0xff, index;
|
||||
uint8_t ret = 0xff;
|
||||
uint8_t index;
|
||||
|
||||
index = (port & 1) ? 0 : 1;
|
||||
|
||||
@@ -345,10 +349,8 @@ pc87309_read(uint16_t port, void *priv)
|
||||
void
|
||||
pc87309_reset(pc87309_t *dev)
|
||||
{
|
||||
int i;
|
||||
|
||||
memset(dev->regs, 0x00, 0x30);
|
||||
for (i = 0; i < 256; i++)
|
||||
for (uint16_t i = 0; i < 256; i++)
|
||||
memset(dev->ld_regs[i], 0x00, 0xd0);
|
||||
memset(dev->pm, 0x00, 0x08);
|
||||
|
||||
|
||||
@@ -149,7 +149,8 @@ static void
|
||||
pc87332_write(uint16_t port, uint8_t val, void *priv)
|
||||
{
|
||||
pc87332_t *dev = (pc87332_t *) priv;
|
||||
uint8_t index, valxor;
|
||||
uint8_t index;
|
||||
uint8_t valxor;
|
||||
|
||||
index = (port & 1) ? 0 : 1;
|
||||
|
||||
@@ -244,7 +245,8 @@ uint8_t
|
||||
pc87332_read(uint16_t port, void *priv)
|
||||
{
|
||||
pc87332_t *dev = (pc87332_t *) priv;
|
||||
uint8_t ret = 0xff, index;
|
||||
uint8_t ret = 0xff;
|
||||
uint8_t index;
|
||||
|
||||
index = (port & 1) ? 0 : 1;
|
||||
|
||||
@@ -316,7 +318,7 @@ pc87332_init(const device_t *info)
|
||||
dev->fdc_on = (info->local >> 16) & 0xff;
|
||||
pc87332_reset(dev);
|
||||
|
||||
if ((info->local & 0xff) == (0x01)) {
|
||||
if ((info->local & 0xff) == 0x01) {
|
||||
io_sethandler(0x398, 0x0002,
|
||||
pc87332_read, NULL, NULL, pc87332_write, NULL, NULL, dev);
|
||||
} else {
|
||||
|
||||
@@ -68,7 +68,8 @@ vt82c686_fdc_handler(vt82c686_t *dev)
|
||||
static void
|
||||
vt82c686_lpt_handler(vt82c686_t *dev)
|
||||
{
|
||||
uint16_t io_mask, io_base = dev->regs[0x06] << 2;
|
||||
uint16_t io_mask;
|
||||
uint16_t io_base = dev->regs[0x06] << 2;
|
||||
int io_len = get_lpt_length(dev);
|
||||
io_base &= (0xff8 | io_len);
|
||||
io_mask = 0x3fc; /* non-EPP */
|
||||
|
||||
@@ -123,8 +123,10 @@ w83787f_serial_handler(w83787f_t *dev, int uart)
|
||||
int urs0 = !!(dev->regs[1] & (1 << uart));
|
||||
int urs1 = !!(dev->regs[1] & (4 << uart));
|
||||
int urs2 = !!(dev->regs[3] & (8 >> uart));
|
||||
int urs, irq = COM1_IRQ;
|
||||
uint16_t addr = COM1_ADDR, enable = 1;
|
||||
int urs;
|
||||
int irq = COM1_IRQ;
|
||||
uint16_t addr = COM1_ADDR;
|
||||
uint16_t enable = 1;
|
||||
|
||||
urs = (urs1 << 1) | urs0;
|
||||
|
||||
@@ -165,7 +167,8 @@ w83787f_lpt_handler(w83787f_t *dev)
|
||||
{
|
||||
int ptras = (dev->regs[1] >> 4) & 0x03;
|
||||
int irq = LPT1_IRQ;
|
||||
uint16_t addr = LPT1_ADDR, enable = 1;
|
||||
uint16_t addr = LPT1_ADDR;
|
||||
uint16_t enable = 1;
|
||||
|
||||
switch (ptras) {
|
||||
case 0x00:
|
||||
|
||||
@@ -96,7 +96,8 @@ w83977f_fdc_handler(w83977f_t *dev)
|
||||
static void
|
||||
w83977f_lpt_handler(w83977f_t *dev)
|
||||
{
|
||||
uint16_t io_mask, io_base = (dev->dev_regs[1][0x30] << 8) | dev->dev_regs[1][0x31];
|
||||
uint16_t io_mask;
|
||||
uint16_t io_base = (dev->dev_regs[1][0x30] << 8) | dev->dev_regs[1][0x31];
|
||||
int io_len = get_lpt_length(dev);
|
||||
io_base &= (0xff8 | io_len);
|
||||
io_mask = 0xffc;
|
||||
@@ -362,10 +363,8 @@ w83977f_read(uint16_t port, void *priv)
|
||||
static void
|
||||
w83977f_reset(w83977f_t *dev)
|
||||
{
|
||||
int i;
|
||||
|
||||
memset(dev->regs, 0, 48);
|
||||
for (i = 0; i < 256; i++)
|
||||
for (uint16_t i = 0; i < 256; i++)
|
||||
memset(dev->dev_regs[i], 0, 208);
|
||||
|
||||
if (dev->type < 2) {
|
||||
|
||||
@@ -36,10 +36,12 @@ static int midi_output_device_last = 0;
|
||||
int midi_input_device_current = 0;
|
||||
static int midi_input_device_last = 0;
|
||||
|
||||
midi_t *midi_out = NULL, *midi_in = NULL;
|
||||
midi_t *midi_out = NULL;
|
||||
midi_t *midi_in = NULL;
|
||||
|
||||
midi_in_handler_t *mih_first = NULL, *mih_last = NULL,
|
||||
*mih_cur = NULL;
|
||||
midi_in_handler_t *mih_first = NULL;
|
||||
midi_in_handler_t *mih_last = NULL;
|
||||
midi_in_handler_t *mih_cur = NULL;
|
||||
|
||||
uint8_t MIDI_InSysexBuf[SYSEX_SIZE];
|
||||
|
||||
@@ -306,7 +308,7 @@ midi_raw_out_rt_byte(uint8_t val)
|
||||
if (!midi_in->midi_realtime)
|
||||
return;
|
||||
|
||||
if ((!midi_in->midi_clockout && (val == 0xf8)))
|
||||
if (!midi_in->midi_clockout && (val == 0xf8))
|
||||
return;
|
||||
|
||||
midi_in->midi_cmd_r = val << 24;
|
||||
@@ -329,7 +331,7 @@ midi_raw_out_byte(uint8_t val)
|
||||
if (!midi_out || !midi_out->m_out_device)
|
||||
return;
|
||||
|
||||
if ((midi_out->m_out_device->write && midi_out->m_out_device->write(val)))
|
||||
if (midi_out->m_out_device->write && midi_out->m_out_device->write(val))
|
||||
return;
|
||||
|
||||
if (midi_out->midi_sysex_start) {
|
||||
@@ -408,7 +410,8 @@ midi_clear_buffer(void)
|
||||
void
|
||||
midi_in_handler(int set, void (*msg)(void *p, uint8_t *msg, uint32_t len), int (*sysex)(void *p, uint8_t *buffer, uint32_t len, int abort), void *p)
|
||||
{
|
||||
midi_in_handler_t *temp = NULL, *next;
|
||||
midi_in_handler_t *temp = NULL;
|
||||
midi_in_handler_t *next;
|
||||
|
||||
if (set) {
|
||||
/* Add MIDI IN handler. */
|
||||
@@ -468,7 +471,8 @@ midi_in_handler(int set, void (*msg)(void *p, uint8_t *msg, uint32_t len), int (
|
||||
void
|
||||
midi_in_handlers_clear(void)
|
||||
{
|
||||
midi_in_handler_t *temp = mih_first, *next;
|
||||
midi_in_handler_t *temp = mih_first;
|
||||
midi_in_handler_t *next;
|
||||
|
||||
while (1) {
|
||||
if (temp == NULL)
|
||||
@@ -532,7 +536,8 @@ static int
|
||||
midi_do_sysex(void)
|
||||
{
|
||||
midi_in_handler_t *temp = mih_first;
|
||||
int ret, cnt_acc = 0;
|
||||
int ret;
|
||||
int cnt_acc = 0;
|
||||
|
||||
while (1) {
|
||||
if (temp == NULL)
|
||||
|
||||
@@ -111,9 +111,12 @@ closeal(void)
|
||||
void
|
||||
inital(void)
|
||||
{
|
||||
float *buf = NULL, *cd_buf = NULL, *midi_buf = NULL;
|
||||
int16_t *buf_int16 = NULL, *cd_buf_int16 = NULL, *midi_buf_int16 = NULL;
|
||||
int c;
|
||||
float *buf = NULL;
|
||||
float *cd_buf = NULL;
|
||||
float *midi_buf = NULL;
|
||||
int16_t *buf_int16 = NULL;
|
||||
int16_t *cd_buf_int16 = NULL;
|
||||
int16_t *midi_buf_int16 = NULL;
|
||||
|
||||
char *mdn;
|
||||
int init_midi = 0;
|
||||
@@ -182,7 +185,7 @@ inital(void)
|
||||
memset(midi_buf_int16, 0, midi_buf_size * sizeof(int16_t));
|
||||
}
|
||||
|
||||
for (c = 0; c < 4; c++) {
|
||||
for (uint8_t c = 0; c < 4; c++) {
|
||||
if (sound_is_float) {
|
||||
alBufferData(buffers[c], AL_FORMAT_STEREO_FLOAT32, buf, BUFLEN * 2 * sizeof(float), FREQ);
|
||||
alBufferData(buffers_cd[c], AL_FORMAT_STEREO_FLOAT32, cd_buf, CD_BUFLEN * 2 * sizeof(float), CD_FREQ);
|
||||
|
||||
@@ -134,9 +134,12 @@ static const int32_t codec_attn[] = {
|
||||
// clang-format on
|
||||
};
|
||||
|
||||
ac97_codec_t **ac97_codec = NULL, **ac97_modem_codec = NULL;
|
||||
int ac97_codec_count = 0, ac97_modem_codec_count = 0,
|
||||
ac97_codec_id = 0, ac97_modem_codec_id = 0;
|
||||
ac97_codec_t **ac97_codec = NULL;
|
||||
ac97_codec_t **ac97_modem_codec = NULL;
|
||||
int ac97_codec_count = 0;
|
||||
int ac97_modem_codec_count = 0;
|
||||
int ac97_codec_id = 0;
|
||||
int ac97_modem_codec_id = 0;
|
||||
|
||||
uint16_t
|
||||
ac97_codec_readw(ac97_codec_t *dev, uint8_t reg)
|
||||
@@ -160,7 +163,8 @@ ac97_codec_writew(ac97_codec_t *dev, uint8_t reg, uint16_t val)
|
||||
ac97_codec_log("AC97 Codec %d: writew(%02X, %04X)\n", dev->codec_id, reg, val);
|
||||
|
||||
reg &= 0x7e;
|
||||
uint16_t i = 0, prev = dev->regs[reg >> 1];
|
||||
uint16_t i = 0;
|
||||
uint16_t prev = dev->regs[reg >> 1];
|
||||
int j;
|
||||
|
||||
switch (reg) {
|
||||
@@ -450,7 +454,7 @@ void
|
||||
ac97_codec_reset(void *priv)
|
||||
{
|
||||
ac97_codec_t *dev = (ac97_codec_t *) priv;
|
||||
uint16_t i, j;
|
||||
uint16_t i;
|
||||
|
||||
ac97_codec_log("AC97 Codec %d: reset()\n", dev->codec_id);
|
||||
|
||||
@@ -498,7 +502,7 @@ ac97_codec_reset(void *priv)
|
||||
|
||||
/* Set vendor-specific registers. */
|
||||
if (dev->vendor_regs) {
|
||||
for (j = 0; dev->vendor_regs[j].index; j++) {
|
||||
for (uint16_t j = 0; dev->vendor_regs[j].index; j++) {
|
||||
i = (dev->vendor_regs[j].index >> 8) & 0x000f;
|
||||
if (i > 0)
|
||||
dev->vendor_reg_pages[(i << 3) | (dev->vendor_regs[j].index >> 1)] = dev->vendor_regs[j].value;
|
||||
@@ -523,7 +527,8 @@ ac97_codec_getattn(void *priv, uint8_t reg, int *l, int *r)
|
||||
*r = 0;
|
||||
} else { /* per-channel mute */
|
||||
/* Determine attenuation value. */
|
||||
uint8_t l_val = val >> 8, r_val = val;
|
||||
uint8_t l_val = val >> 8;
|
||||
uint8_t r_val = val;
|
||||
if (reg <= 0x06) { /* 6-bit level */
|
||||
*l = codec_attn[0x3f - (l_val & 0x3f)];
|
||||
*r = codec_attn[0x3f - (r_val & 0x3f)];
|
||||
@@ -594,9 +599,9 @@ ac97_codec_init(const device_t *info)
|
||||
/* Allocate vendor-specific register pages if required. */
|
||||
if (dev->vendor_regs) {
|
||||
/* Get the highest vendor-specific register page number. */
|
||||
int i, j;
|
||||
int i;
|
||||
dev->vendor_reg_page_max = 0;
|
||||
for (j = 0; dev->vendor_regs[j].index; j++) {
|
||||
for (uint16_t j = 0; dev->vendor_regs[j].index; j++) {
|
||||
i = (dev->vendor_regs[j].index >> 8) & 0x000f;
|
||||
if (i > dev->vendor_reg_page_max)
|
||||
dev->vendor_reg_page_max = i;
|
||||
|
||||
@@ -284,7 +284,8 @@ void
|
||||
ac97_via_sgd_write(uint16_t addr, uint8_t val, void *priv)
|
||||
{
|
||||
ac97_via_t *dev = (ac97_via_t *) priv;
|
||||
uint8_t modem = (addr & 0xff00) == dev->modem_sgd_base, i;
|
||||
uint8_t modem = (addr & 0xff00) == dev->modem_sgd_base;
|
||||
uint8_t i;
|
||||
ac97_codec_t *codec;
|
||||
addr &= 0xff;
|
||||
|
||||
@@ -496,8 +497,8 @@ ac97_via_remap_modem_codec(void *priv, uint16_t new_io_base, uint8_t enable)
|
||||
static void
|
||||
ac97_via_update_stereo(ac97_via_t *dev, ac97_via_sgd_t *sgd)
|
||||
{
|
||||
int32_t l = (((sgd->out_l * sgd->vol_l) >> 15) * dev->master_vol_l) >> 15,
|
||||
r = (((sgd->out_r * sgd->vol_r) >> 15) * dev->master_vol_r) >> 15;
|
||||
int32_t l = (((sgd->out_l * sgd->vol_l) >> 15) * dev->master_vol_l) >> 15;
|
||||
int32_t r = (((sgd->out_r * sgd->vol_r) >> 15) * dev->master_vol_r) >> 15;
|
||||
|
||||
if (l < -32768)
|
||||
l = -32768;
|
||||
@@ -728,7 +729,8 @@ static void
|
||||
ac97_via_filter_cd_audio(int channel, double *buffer, void *priv)
|
||||
{
|
||||
ac97_via_t *dev = (ac97_via_t *) priv;
|
||||
double c, volume = channel ? dev->cd_vol_r : dev->cd_vol_l;
|
||||
double c;
|
||||
double volume = channel ? dev->cd_vol_r : dev->cd_vol_l;
|
||||
|
||||
c = ((*buffer) * volume) / 65536.0;
|
||||
*buffer = c;
|
||||
|
||||
@@ -48,9 +48,9 @@ ad1848_setirq(ad1848_t *ad1848, int irq)
|
||||
}
|
||||
|
||||
void
|
||||
ad1848_setdma(ad1848_t *ad1848, int dma)
|
||||
ad1848_setdma(ad1848_t *ad1848, int newdma)
|
||||
{
|
||||
ad1848->dma = dma;
|
||||
ad1848->dma = newdma;
|
||||
}
|
||||
|
||||
void
|
||||
@@ -209,7 +209,8 @@ void
|
||||
ad1848_write(uint16_t addr, uint8_t val, void *priv)
|
||||
{
|
||||
ad1848_t *ad1848 = (ad1848_t *) priv;
|
||||
uint8_t temp = 0, updatefreq = 0;
|
||||
uint8_t temp = 0;
|
||||
uint8_t updatefreq = 0;
|
||||
|
||||
switch (addr & 3) {
|
||||
case 0: /* Index */
|
||||
|
||||
@@ -42,11 +42,10 @@ static void
|
||||
adlib_get_buffer(int32_t *buffer, int len, void *p)
|
||||
{
|
||||
adlib_t *adlib = (adlib_t *) p;
|
||||
int c;
|
||||
|
||||
int32_t *opl_buf = adlib->opl.update(adlib->opl.priv);
|
||||
|
||||
for (c = 0; c < len * 2; c++)
|
||||
for (int c = 0; c < len * 2; c++)
|
||||
buffer[c] += (int32_t) opl_buf[c];
|
||||
|
||||
adlib->opl.reset_buffer(adlib->opl.priv);
|
||||
|
||||
@@ -345,7 +345,7 @@ adgold_write(uint16_t addr, uint8_t val, void *p)
|
||||
adgold_update_irq_status(adgold);
|
||||
dma_set_drq(adgold->dma, 0);
|
||||
}
|
||||
if ((val & 0x01)) /*Start playback*/
|
||||
if (val & 0x01) /*Start playback*/
|
||||
{
|
||||
if (!(adgold->adgold_mma_regs[0][0x9] & 1))
|
||||
adgold->adgold_mma.voice_count[0] = adgold->adgold_mma.voice_latch[0];
|
||||
@@ -468,7 +468,7 @@ adgold_write(uint16_t addr, uint8_t val, void *p)
|
||||
adgold_update_irq_status(adgold);
|
||||
dma_set_drq(adgold->dma, 0);
|
||||
}
|
||||
if ((val & 0x01)) /*Start playback*/
|
||||
if (val & 0x01) /*Start playback*/
|
||||
{
|
||||
if (!(adgold->adgold_mma_regs[1][0x9] & 1))
|
||||
adgold->adgold_mma.voice_count[1] = adgold->adgold_mma.voice_latch[1];
|
||||
@@ -782,7 +782,9 @@ adgold_get_buffer(int32_t *buffer, int len, void *p)
|
||||
}
|
||||
|
||||
for (c = 0; c < len * 2; c += 2) {
|
||||
int32_t temp, lowpass, highpass;
|
||||
int32_t temp;
|
||||
int32_t lowpass;
|
||||
int32_t highpass;
|
||||
|
||||
/*Output is deliberately halved to avoid clipping*/
|
||||
temp = ((int32_t) adgold_buffer[c] * adgold->vol_l) >> 17;
|
||||
@@ -862,14 +864,13 @@ static int
|
||||
adgold_input_sysex(void *p, uint8_t *buffer, uint32_t len, int abort)
|
||||
{
|
||||
adgold_t *adgold = (adgold_t *) p;
|
||||
uint32_t i;
|
||||
|
||||
if (abort) {
|
||||
adgold->sysex = 0;
|
||||
return 0;
|
||||
}
|
||||
adgold->sysex = 1;
|
||||
for (i = 0; i < len; i++) {
|
||||
for (uint32_t i = 0; i < len; i++) {
|
||||
if (adgold->midi_r == adgold->midi_w)
|
||||
return (len - i);
|
||||
adgold->midi_queue[adgold->midi_w++] = buffer[i];
|
||||
|
||||
@@ -290,9 +290,7 @@ es1371_write_fifo(es1371_t *dev, uint8_t val)
|
||||
static void
|
||||
es1371_reset_fifo(es1371_t *dev)
|
||||
{
|
||||
int i;
|
||||
|
||||
for (i = 0; i < 8; i++)
|
||||
for (uint8_t i = 0; i < 8; i++)
|
||||
dev->uart_fifo[i] = 0x00000000;
|
||||
|
||||
dev->read_fifo_pos = dev->write_fifo_pos = 0;
|
||||
@@ -304,7 +302,6 @@ static void
|
||||
es1371_reset(void *p)
|
||||
{
|
||||
es1371_t *dev = (es1371_t *) p;
|
||||
int i;
|
||||
|
||||
nmi = 0;
|
||||
|
||||
@@ -392,7 +389,7 @@ es1371_reset(void *p)
|
||||
|
||||
/* UART FIFO Register, Address 30H, 34H, 38H, 3CH, Memory Page 1110b, 1111b
|
||||
Addressable as longword only */
|
||||
for (i = 0; i < 8; i++)
|
||||
for (uint8_t i = 0; i < 8; i++)
|
||||
dev->uart_fifo[i] = 0xffff0000;
|
||||
|
||||
/* Reset the UART TX. */
|
||||
@@ -1760,7 +1757,8 @@ low_fir_es1371(int dac_nr, int i, float NewSample)
|
||||
static float x[2][2][128]; // input samples
|
||||
static int x_pos[2] = { 0, 0 };
|
||||
float out = 0.0;
|
||||
int read_pos, n_coef;
|
||||
int read_pos;
|
||||
int n_coef;
|
||||
int pos = x_pos[dac_nr];
|
||||
|
||||
x[dac_nr][i][pos] = NewSample;
|
||||
@@ -1788,8 +1786,8 @@ low_fir_es1371(int dac_nr, int i, float NewSample)
|
||||
static void
|
||||
es1371_next_sample_filtered(es1371_t *dev, int dac_nr, int out_idx)
|
||||
{
|
||||
int out_l, out_r;
|
||||
int c;
|
||||
int out_l;
|
||||
int out_r;
|
||||
|
||||
if ((dev->dac[dac_nr].buffer_pos - dev->dac[dac_nr].buffer_pos_end) >= 0)
|
||||
es1371_fetch(dev, dac_nr);
|
||||
@@ -1800,7 +1798,7 @@ es1371_next_sample_filtered(es1371_t *dev, int dac_nr, int out_idx)
|
||||
dev->dac[dac_nr].filtered_l[out_idx] = (int) low_fir_es1371(dac_nr, 0, (float) out_l);
|
||||
dev->dac[dac_nr].filtered_r[out_idx] = (int) low_fir_es1371(dac_nr, 1, (float) out_r);
|
||||
|
||||
for (c = 1; c < 16; c++) {
|
||||
for (uint8_t c = 1; c < 16; c++) {
|
||||
dev->dac[dac_nr].filtered_l[out_idx + c] = (int) low_fir_es1371(dac_nr, 0, 0);
|
||||
dev->dac[dac_nr].filtered_r[out_idx + c] = (int) low_fir_es1371(dac_nr, 1, 0);
|
||||
}
|
||||
@@ -1811,7 +1809,8 @@ es1371_next_sample_filtered(es1371_t *dev, int dac_nr, int out_idx)
|
||||
static void
|
||||
es1371_update(es1371_t *dev)
|
||||
{
|
||||
int32_t l, r;
|
||||
int32_t l;
|
||||
int32_t r;
|
||||
|
||||
l = (dev->dac[0].out_l * dev->dac[0].vol_l) >> 12;
|
||||
l += ((dev->dac[1].out_l * dev->dac[1].vol_l) >> 12);
|
||||
@@ -1843,7 +1842,12 @@ static void
|
||||
es1371_poll(void *p)
|
||||
{
|
||||
es1371_t *dev = (es1371_t *) p;
|
||||
int frac, idx, samp1_l, samp1_r, samp2_l, samp2_r;
|
||||
int frac;
|
||||
int idx;
|
||||
int samp1_l;
|
||||
int samp1_r;
|
||||
int samp2_l;
|
||||
int samp2_r;
|
||||
|
||||
timer_advance_u64(&dev->dac[1].timer, dev->dac[1].latch);
|
||||
|
||||
@@ -1906,11 +1910,10 @@ static void
|
||||
es1371_get_buffer(int32_t *buffer, int len, void *p)
|
||||
{
|
||||
es1371_t *dev = (es1371_t *) p;
|
||||
int c;
|
||||
|
||||
es1371_update(dev);
|
||||
|
||||
for (c = 0; c < len * 2; c++)
|
||||
for (int c = 0; c < len * 2; c++)
|
||||
buffer[c] += (dev->buffer[c] / 2);
|
||||
|
||||
dev->pos = 0;
|
||||
|
||||
@@ -250,14 +250,14 @@ azt1605_create_config_word(void *p)
|
||||
case 0x240:
|
||||
temp += 1 << 0;
|
||||
break;
|
||||
/*
|
||||
case 0x260: // TODO: INVALID?
|
||||
temp += 2 << 0;
|
||||
break;
|
||||
case 0x280: // TODO: INVALID?
|
||||
temp += 3 << 0;
|
||||
break;
|
||||
*/
|
||||
#if 0
|
||||
case 0x260: // TODO: INVALID?
|
||||
temp += 2 << 0;
|
||||
break;
|
||||
case 0x280: // TODO: INVALID?
|
||||
temp += 3 << 0;
|
||||
break;
|
||||
#endif
|
||||
}
|
||||
|
||||
switch (azt2316a->cur_irq) {
|
||||
@@ -414,14 +414,14 @@ azt2316a_create_config_word(void *p)
|
||||
case 0x240:
|
||||
temp += 1 << 0;
|
||||
break;
|
||||
/*
|
||||
case 0x260: // TODO: INVALID?
|
||||
temp += 2 << 0;
|
||||
break;
|
||||
case 0x280: // TODO: INVALID?
|
||||
temp += 3 << 0;
|
||||
break;
|
||||
*/
|
||||
#if 0
|
||||
case 0x260: // TODO: INVALID?
|
||||
temp += 2 << 0;
|
||||
break;
|
||||
case 0x280: // TODO: INVALID?
|
||||
temp += 3 << 0;
|
||||
break;
|
||||
#endif
|
||||
}
|
||||
|
||||
switch (azt2316a->cur_irq) {
|
||||
@@ -440,13 +440,13 @@ azt2316a_create_config_word(void *p)
|
||||
}
|
||||
|
||||
switch (azt2316a->cur_dma) {
|
||||
/*
|
||||
// TODO: INVALID?
|
||||
case 0xFF: // -1
|
||||
// do nothing
|
||||
//temp += 0 << 6;
|
||||
break;
|
||||
*/
|
||||
#if 0
|
||||
// TODO: INVALID?
|
||||
case 0xFF: // -1
|
||||
// do nothing
|
||||
//temp += 0 << 6;
|
||||
break;
|
||||
#endif
|
||||
case 0:
|
||||
temp += 1 << 6;
|
||||
break;
|
||||
@@ -541,11 +541,11 @@ azt2316a_create_config_word(void *p)
|
||||
case 0:
|
||||
temp += 1 << 20;
|
||||
break;
|
||||
/*
|
||||
case 1: // TODO: INVALID?
|
||||
temp += 2 << 20;
|
||||
break;
|
||||
*/
|
||||
#if 0
|
||||
case 1: // TODO: INVALID?
|
||||
temp += 2 << 20;
|
||||
break;
|
||||
#endif
|
||||
case 3:
|
||||
temp += 3 << 20;
|
||||
break;
|
||||
@@ -665,12 +665,12 @@ azt1605_config_write(uint16_t addr, uint8_t val, void *p)
|
||||
azt2316a->cur_addr = 0x220;
|
||||
else if (temp == 1)
|
||||
azt2316a->cur_addr = 0x240;
|
||||
/*
|
||||
else if (temp == 2)
|
||||
azt2316a->cur_addr = 0x260; // TODO: INVALID
|
||||
else if (temp == 3)
|
||||
azt2316a->cur_addr = 0x280; // TODO: INVALID
|
||||
*/
|
||||
#if 0
|
||||
else if (temp == 2)
|
||||
azt2316a->cur_addr = 0x260; // TODO: INVALID
|
||||
else if (temp == 3)
|
||||
azt2316a->cur_addr = 0x280; // TODO: INVALID
|
||||
#endif
|
||||
if (val & 0x4)
|
||||
azt2316a->cur_mpu401_addr = 0x330;
|
||||
else
|
||||
@@ -866,11 +866,10 @@ static void
|
||||
azt2316a_get_buffer(int32_t *buffer, int len, void *p)
|
||||
{
|
||||
azt2316a_t *azt2316a = (azt2316a_t *) p;
|
||||
int c;
|
||||
|
||||
/* wss part */
|
||||
ad1848_update(&azt2316a->ad1848);
|
||||
for (c = 0; c < len * 2; c++)
|
||||
for (int c = 0; c < len * 2; c++)
|
||||
buffer[c] += (azt2316a->ad1848.buffer[c] / 2);
|
||||
|
||||
azt2316a->ad1848.pos = 0;
|
||||
@@ -1189,7 +1188,6 @@ azt_close(void *p)
|
||||
char *fn = NULL;
|
||||
FILE *f;
|
||||
uint8_t checksum = 0x7f;
|
||||
int i;
|
||||
|
||||
if (azt2316a->type == SB_SUBTYPE_CLONE_AZT1605_0X0C) {
|
||||
fn = "azt1605.nvr";
|
||||
@@ -1200,7 +1198,7 @@ azt_close(void *p)
|
||||
/* always save to eeprom (recover from bad values) */
|
||||
f = nvr_fopen(fn, "wb");
|
||||
if (f) {
|
||||
for (i = 0; i < AZTECH_EEPROM_SIZE; i++)
|
||||
for (uint8_t i = 0; i < AZTECH_EEPROM_SIZE; i++)
|
||||
checksum += azt2316a->sb->dsp.azt_eeprom[i];
|
||||
fwrite(azt2316a->sb->dsp.azt_eeprom, AZTECH_EEPROM_SIZE, 1, f);
|
||||
|
||||
|
||||
@@ -181,8 +181,8 @@ cmi8x38_sb_dma_post(cmi8x38_t *dev, uint16_t *addr, uint16_t *count, int channel
|
||||
/* Check TDMA position update interrupt if enabled. */
|
||||
if (dev->io_regs[0x0e] & 0x04) {
|
||||
/* Nothing uses this; I assume it goes by the SB DSP sample counter (forwards instead of backwards). */
|
||||
int origlength = (channel & 4) ? dev->sb->dsp.sb_16_origlength : dev->sb->dsp.sb_8_origlength,
|
||||
length = (channel & 4) ? dev->sb->dsp.sb_16_length : dev->sb->dsp.sb_8_length;
|
||||
int origlength = (channel & 4) ? dev->sb->dsp.sb_16_origlength : dev->sb->dsp.sb_8_origlength;
|
||||
int length = (channel & 4) ? dev->sb->dsp.sb_16_length : dev->sb->dsp.sb_8_length;
|
||||
if ((origlength != length) && (((origlength - length) & dev->tdma_irq_mask) == 0)) { /* skip initial sample */
|
||||
/* Fire the interrupt. */
|
||||
dev->io_regs[0x11] |= (channel & 4) ? 0x40 : 0x80;
|
||||
@@ -225,8 +225,8 @@ cmi8x38_sb_dma_readb(void *priv)
|
||||
return DMA_NODATA;
|
||||
|
||||
/* Get 16-bit address and count registers. */
|
||||
uint16_t *addr = (uint16_t *) &dev->io_regs[0x1c],
|
||||
*count = (uint16_t *) &dev->io_regs[0x1e];
|
||||
uint16_t *addr = (uint16_t *) &dev->io_regs[0x1c];
|
||||
uint16_t *count = (uint16_t *) &dev->io_regs[0x1e];
|
||||
|
||||
/* Read data. */
|
||||
int ret = mem_readb_phys((dma[channel].ab & 0xffff0000) | *addr);
|
||||
@@ -248,8 +248,8 @@ cmi8x38_sb_dma_readw(void *priv)
|
||||
return DMA_NODATA;
|
||||
|
||||
/* Get 16-bit address and count registers. */
|
||||
uint16_t *addr = (uint16_t *) &dev->io_regs[0x1c],
|
||||
*count = (uint16_t *) &dev->io_regs[0x1e];
|
||||
uint16_t *addr = (uint16_t *) &dev->io_regs[0x1c];
|
||||
uint16_t *count = (uint16_t *) &dev->io_regs[0x1e];
|
||||
|
||||
/* Read data. */
|
||||
int ret = mem_readw_phys((dma[channel].ab & 0xfffe0000) | ((*addr) << 1));
|
||||
@@ -271,8 +271,8 @@ cmi8x38_sb_dma_writeb(void *priv, uint8_t val)
|
||||
return 1;
|
||||
|
||||
/* Get 16-bit address and count registers. */
|
||||
uint16_t *addr = (uint16_t *) &dev->io_regs[0x1c],
|
||||
*count = (uint16_t *) &dev->io_regs[0x1e];
|
||||
uint16_t *addr = (uint16_t *) &dev->io_regs[0x1c];
|
||||
uint16_t *count = (uint16_t *) &dev->io_regs[0x1e];
|
||||
|
||||
/* Write data. */
|
||||
mem_writeb_phys((dma[channel].ab & 0xffff0000) | *addr, val);
|
||||
@@ -294,8 +294,8 @@ cmi8x38_sb_dma_writew(void *priv, uint16_t val)
|
||||
return 1;
|
||||
|
||||
/* Get 16-bit address and count registers. */
|
||||
uint16_t *addr = (uint16_t *) &dev->io_regs[0x1c],
|
||||
*count = (uint16_t *) &dev->io_regs[0x1e];
|
||||
uint16_t *addr = (uint16_t *) &dev->io_regs[0x1c];
|
||||
uint16_t *count = (uint16_t *) &dev->io_regs[0x1e];
|
||||
|
||||
/* Write data. */
|
||||
mem_writew_phys((dma[channel].ab & 0xfffe0000) | ((*addr) << 1), val);
|
||||
@@ -333,8 +333,8 @@ cmi8x38_dma_write(uint16_t addr, uint8_t val, void *priv)
|
||||
}
|
||||
|
||||
/* Write base address and count. */
|
||||
uint16_t *daddr = (uint16_t *) &dev->io_regs[0x1c],
|
||||
*count = (uint16_t *) &dev->io_regs[0x1e];
|
||||
uint16_t *daddr = (uint16_t *) &dev->io_regs[0x1c];
|
||||
uint16_t *count = (uint16_t *) &dev->io_regs[0x1e];
|
||||
*daddr = dev->tdma_base_addr = dma[channel].ab >> !!(channel & 4);
|
||||
*count = dev->tdma_base_count = dma[channel].cb;
|
||||
cmi8x38_log("CMI8x38: Starting TDMA on DMA %d with addr %08X count %04X\n",
|
||||
@@ -556,7 +556,8 @@ cmi8x38_remap_traps(cmi8x38_t *dev)
|
||||
static void
|
||||
cmi8x38_start_playback(cmi8x38_t *dev)
|
||||
{
|
||||
uint8_t i, val = dev->io_regs[0x00];
|
||||
uint8_t i;
|
||||
uint8_t val = dev->io_regs[0x00];
|
||||
|
||||
i = !(val & 0x01);
|
||||
if (!dev->dma[0].playback_enabled && i)
|
||||
@@ -990,8 +991,8 @@ static void
|
||||
cmi8x38_update(cmi8x38_t *dev, cmi8x38_dma_t *dma)
|
||||
{
|
||||
sb_ct1745_mixer_t *mixer = &dev->sb->mixer_sb16;
|
||||
int32_t l = (dma->out_fl * mixer->voice_l) * mixer->master_l,
|
||||
r = (dma->out_fr * mixer->voice_r) * mixer->master_r;
|
||||
int32_t l = (dma->out_fl * mixer->voice_l) * mixer->master_l;
|
||||
int32_t r = (dma->out_fr * mixer->voice_r) * mixer->master_r;
|
||||
|
||||
for (; dma->pos < sound_pos_global; dma->pos++) {
|
||||
dma->buffer[dma->pos * 2] = l;
|
||||
@@ -1083,7 +1084,10 @@ cmi8x38_poll(void *priv)
|
||||
{
|
||||
cmi8x38_dma_t *dma = (cmi8x38_dma_t *) priv;
|
||||
cmi8x38_t *dev = dma->dev;
|
||||
int16_t *out_l, *out_r, *out_ol, *out_or; /* o = opposite */
|
||||
int16_t *out_l;
|
||||
int16_t *out_r;
|
||||
int16_t *out_ol;
|
||||
int16_t *out_or; /* o = opposite */
|
||||
|
||||
/* Schedule next run if playback is enabled. */
|
||||
if (dma->playback_enabled)
|
||||
@@ -1245,8 +1249,8 @@ cmi8x38_speed_changed(void *priv)
|
||||
{
|
||||
cmi8x38_t *dev = (cmi8x38_t *) priv;
|
||||
double freq;
|
||||
uint8_t dsr = dev->io_regs[0x09], freqreg = dev->io_regs[0x05] >> 2,
|
||||
chfmt45 = dev->io_regs[0x0b], chfmt6 = dev->io_regs[0x15];
|
||||
uint8_t dsr = dev->io_regs[0x09], freqreg = dev->io_regs[0x05] >> 2;
|
||||
uint8_t chfmt45 = dev->io_regs[0x0b], chfmt6 = dev->io_regs[0x15];
|
||||
|
||||
#ifdef ENABLE_CMI8X38_LOG
|
||||
char buf[256];
|
||||
|
||||
@@ -15,8 +15,10 @@ void
|
||||
cms_update(cms_t *cms)
|
||||
{
|
||||
for (; cms->pos < sound_pos_global; cms->pos++) {
|
||||
int c, d;
|
||||
int16_t out_l = 0, out_r = 0;
|
||||
int c;
|
||||
int d;
|
||||
int16_t out_l = 0;
|
||||
int16_t out_r = 0;
|
||||
|
||||
for (c = 0; c < 4; c++) {
|
||||
switch (cms->noisetype[c >> 1][c & 1]) {
|
||||
@@ -65,7 +67,7 @@ cms_update(cms_t *cms)
|
||||
}
|
||||
}
|
||||
}
|
||||
cms->buffer[(cms->pos << 1)] = out_l;
|
||||
cms->buffer[cms->pos << 1] = out_l;
|
||||
cms->buffer[(cms->pos << 1) + 1] = out_r;
|
||||
}
|
||||
}
|
||||
@@ -75,11 +77,9 @@ cms_get_buffer(int32_t *buffer, int len, void *p)
|
||||
{
|
||||
cms_t *cms = (cms_t *) p;
|
||||
|
||||
int c;
|
||||
|
||||
cms_update(cms);
|
||||
|
||||
for (c = 0; c < len * 2; c++)
|
||||
for (int c = 0; c < len * 2; c++)
|
||||
buffer[c] += cms->buffer[c];
|
||||
|
||||
cms->pos = 0;
|
||||
|
||||
@@ -469,9 +469,9 @@ cs423x_slam_enable(cs423x_t *dev, uint8_t enable)
|
||||
static void
|
||||
cs423x_ctxswitch_write(uint16_t addr, uint8_t val, void *priv)
|
||||
{
|
||||
cs423x_t *dev = (cs423x_t *) priv;
|
||||
uint8_t ctx = (dev->regs[7] & 0x80),
|
||||
enable_opl = (dev->ad1848.xregs[4] & 0x10) && !(dev->indirect_regs[2] & 0x85);
|
||||
cs423x_t *dev = (cs423x_t *) priv;
|
||||
uint8_t ctx = (dev->regs[7] & 0x80);
|
||||
uint8_t enable_opl = (dev->ad1848.xregs[4] & 0x10) && !(dev->indirect_regs[2] & 0x85);
|
||||
|
||||
/* Check if a context switch (WSS=1 <-> SBPro=0) occurred through the address being written. */
|
||||
if ((dev->regs[7] & 0x80) ? ((addr & 0xfff0) == dev->sb_base) : ((addr & 0xfffc) == dev->wss_base)) {
|
||||
@@ -504,7 +504,7 @@ static void
|
||||
cs423x_get_buffer(int32_t *buffer, int len, void *priv)
|
||||
{
|
||||
cs423x_t *dev = (cs423x_t *) priv;
|
||||
int c, opl_wss = dev->opl_wss;
|
||||
int opl_wss = dev->opl_wss;
|
||||
int32_t *opl_buf = NULL;
|
||||
|
||||
/* Output audio from the WSS codec, and also the OPL if we're in charge of it. */
|
||||
@@ -514,7 +514,7 @@ cs423x_get_buffer(int32_t *buffer, int len, void *priv)
|
||||
|
||||
/* Don't output anything if the analog section is powered down. */
|
||||
if (!(dev->indirect_regs[2] & 0xa4)) {
|
||||
for (c = 0; c < len * 2; c += 2) {
|
||||
for (int c = 0; c < len * 2; c += 2) {
|
||||
if (opl_wss) {
|
||||
buffer[c] += (opl_buf[c] * dev->ad1848.fm_vol_l) >> 16;
|
||||
buffer[c + 1] += (opl_buf[c + 1] * dev->ad1848.fm_vol_r) >> 16;
|
||||
|
||||
@@ -946,8 +946,7 @@ emu8k_outw(uint16_t addr, uint16_t val, void *p)
|
||||
break;
|
||||
case 0x5:
|
||||
{
|
||||
int c;
|
||||
for (c = 0; c < 8; c++) {
|
||||
for (uint8_t c = 0; c < 8; c++) {
|
||||
emu8k->reverb_engine.allpass[c].feedback = (val & 0xFF) / ((float) 0xFF);
|
||||
}
|
||||
}
|
||||
@@ -1216,8 +1215,7 @@ emu8k_outw(uint16_t addr, uint16_t val, void *p)
|
||||
break;
|
||||
case 0x1d:
|
||||
{
|
||||
int c;
|
||||
for (c = 0; c < 6; c++) {
|
||||
for (uint8_t c = 0; c < 6; c++) {
|
||||
emu8k->reverb_engine.reflections[c].damp1 = (val & 0xFF) / 255.0;
|
||||
emu8k->reverb_engine.reflections[c].damp2 = (0xFF - (val & 0xFF)) / 255.0;
|
||||
emu8k->reverb_engine.reflections[c].filterstore = 0;
|
||||
@@ -1468,8 +1466,7 @@ emu8k_outb(uint16_t addr, uint8_t val, void *p)
|
||||
void
|
||||
emu8k_work_chorus(int32_t *inbuf, int32_t *outbuf, emu8k_chorus_eng_t *engine, int count)
|
||||
{
|
||||
int pos;
|
||||
for (pos = 0; pos < count; pos++) {
|
||||
for (int pos = 0; pos < count; pos++) {
|
||||
double lfo_inter1 = chortable[engine->lfo_pos.int_address];
|
||||
// double lfo_inter2 = chortable[(engine->lfo_pos.int_address+1)&0xFFFF];
|
||||
|
||||
@@ -1595,7 +1592,10 @@ emu8k_work_reverb(int32_t *inbuf, int32_t *outbuf, emu8k_reverb_eng_t *engine, i
|
||||
int pos;
|
||||
if (engine->link_return_type) {
|
||||
for (pos = 0; pos < count; pos++) {
|
||||
int32_t dat1, dat2, in, in2;
|
||||
int32_t dat1;
|
||||
int32_t dat2;
|
||||
int32_t in;
|
||||
int32_t in2;
|
||||
in = emu8k_reverb_damper_work(&engine->damper, inbuf[pos]);
|
||||
in2 = (in * engine->refl_in_amp) >> 8;
|
||||
dat2 = emu8k_reverb_comb_work(&engine->reflections[0], in2);
|
||||
@@ -1613,7 +1613,10 @@ emu8k_work_reverb(int32_t *inbuf, int32_t *outbuf, emu8k_reverb_eng_t *engine, i
|
||||
}
|
||||
} else {
|
||||
for (pos = 0; pos < count; pos++) {
|
||||
int32_t dat1, dat2, in, in2;
|
||||
int32_t dat1;
|
||||
int32_t dat2;
|
||||
int32_t in;
|
||||
int32_t in2;
|
||||
in = emu8k_reverb_damper_work(&engine->damper, inbuf[pos]);
|
||||
in2 = (in * engine->refl_in_amp) >> 8;
|
||||
dat1 = emu8k_reverb_comb_work(&engine->reflections[0], in2);
|
||||
@@ -1666,7 +1669,6 @@ emu8k_update(emu8k_t *emu8k)
|
||||
int32_t *buf;
|
||||
emu8k_voice_t *emu_voice;
|
||||
int pos;
|
||||
int c;
|
||||
|
||||
/* Clean the buffers since we will accumulate into them. */
|
||||
buf = &emu8k->buffer[emu8k->pos * 2];
|
||||
@@ -1675,7 +1677,7 @@ emu8k_update(emu8k_t *emu8k)
|
||||
memset(&emu8k->reverb_in_buffer[emu8k->pos], 0, (new_pos - emu8k->pos) * sizeof(emu8k->reverb_in_buffer[0]));
|
||||
|
||||
/* Voices section */
|
||||
for (c = 0; c < 32; c++) {
|
||||
for (uint8_t c = 0; c < 32; c++) {
|
||||
emu_voice = &emu8k->voice[c];
|
||||
buf = &emu8k->buffer[emu8k->pos * 2];
|
||||
|
||||
@@ -2205,8 +2207,7 @@ emu8k_init(emu8k_t *emu8k, uint16_t emu_addr, int onboard_ram)
|
||||
}
|
||||
|
||||
/* Filter coefficients tables. Note: Values are multiplied by *16777216 to left shift 24 bits. (i.e. 8.24 fixed point) */
|
||||
int qidx;
|
||||
for (qidx = 0; qidx < 16; qidx++) {
|
||||
for (uint8_t qidx = 0; qidx < 16; qidx++) {
|
||||
out = 125.0; /* Start at 125Hz */
|
||||
for (c = 0; c < 256; c++) {
|
||||
#ifdef FILTER_INITIAL
|
||||
|
||||
@@ -202,7 +202,8 @@ void
|
||||
writegus(uint16_t addr, uint8_t val, void *p)
|
||||
{
|
||||
gus_t *gus = (gus_t *) p;
|
||||
int c, d;
|
||||
int c;
|
||||
int d;
|
||||
int old;
|
||||
uint16_t port;
|
||||
#if defined(DEV_BRANCH) && defined(USE_GUSMAX)
|
||||
@@ -925,7 +926,6 @@ gus_poll_wave(void *p)
|
||||
{
|
||||
gus_t *gus = (gus_t *) p;
|
||||
uint32_t addr;
|
||||
int d;
|
||||
int16_t v;
|
||||
int32_t vl;
|
||||
int update_irqs = 0;
|
||||
@@ -938,7 +938,7 @@ gus_poll_wave(void *p)
|
||||
|
||||
if ((gus->reset & 3) != 3)
|
||||
return;
|
||||
for (d = 0; d < 32; d++) {
|
||||
for (uint8_t d = 0; d < 32; d++) {
|
||||
if (!(gus->ctrl[d] & 3)) {
|
||||
if (gus->ctrl[d] & 4) {
|
||||
addr = gus->cur[d] >> 9;
|
||||
@@ -1058,7 +1058,6 @@ static void
|
||||
gus_get_buffer(int32_t *buffer, int len, void *p)
|
||||
{
|
||||
gus_t *gus = (gus_t *) p;
|
||||
int c;
|
||||
|
||||
#if defined(DEV_BRANCH) && defined(USE_GUSMAX)
|
||||
if (gus->max_ctrl)
|
||||
@@ -1066,7 +1065,7 @@ gus_get_buffer(int32_t *buffer, int len, void *p)
|
||||
#endif
|
||||
gus_update(gus);
|
||||
|
||||
for (c = 0; c < len * 2; c++) {
|
||||
for (int c = 0; c < len * 2; c++) {
|
||||
#if defined(DEV_BRANCH) && defined(USE_GUSMAX)
|
||||
if (gus->max_ctrl)
|
||||
buffer[c] += (int32_t) (gus->ad1848.buffer[c] / 2);
|
||||
@@ -1105,14 +1104,13 @@ static int
|
||||
gus_input_sysex(void *p, uint8_t *buffer, uint32_t len, int abort)
|
||||
{
|
||||
gus_t *gus = (gus_t *) p;
|
||||
uint32_t i;
|
||||
|
||||
if (abort) {
|
||||
gus->sysex = 0;
|
||||
return 0;
|
||||
}
|
||||
gus->sysex = 1;
|
||||
for (i = 0; i < len; i++) {
|
||||
for (uint32_t i = 0; i < len; i++) {
|
||||
if (gus->midi_r == gus->midi_w)
|
||||
return (len - i);
|
||||
gus->midi_queue[gus->midi_w++] = buffer[i];
|
||||
|
||||
@@ -67,11 +67,10 @@ static void
|
||||
dac_get_buffer(int32_t *buffer, int len, void *p)
|
||||
{
|
||||
lpt_dac_t *lpt_dac = (lpt_dac_t *) p;
|
||||
int c;
|
||||
|
||||
dac_update(lpt_dac);
|
||||
|
||||
for (c = 0; c < len; c++) {
|
||||
for (int c = 0; c < len; c++) {
|
||||
buffer[c * 2] += dac_iir(0, lpt_dac->buffer[0][c]);
|
||||
buffer[c * 2 + 1] += dac_iir(1, lpt_dac->buffer[1][c]);
|
||||
}
|
||||
|
||||
@@ -77,13 +77,12 @@ static void
|
||||
dss_get_buffer(int32_t *buffer, int len, void *p)
|
||||
{
|
||||
dss_t *dss = (dss_t *) p;
|
||||
int c;
|
||||
int16_t val;
|
||||
float fval;
|
||||
|
||||
dss_update(dss);
|
||||
|
||||
for (c = 0; c < len * 2; c += 2) {
|
||||
for (int c = 0; c < len * 2; c += 2) {
|
||||
fval = dss_iir((float) dss->buffer[c >> 1]);
|
||||
val = (float) fval;
|
||||
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user