static int cdscsidevicetype[MAX_TOTAL_SCSI_DEVICES];
-#ifdef _WIN32
-
-#include "od-win32/win32.h"
-
-extern struct device_functions devicefunc_win32_spti;
-extern struct device_functions devicefunc_win32_ioctl;
-
-#endif
-
-extern struct device_functions devicefunc_cdimage;
-
static struct device_functions *devicetable[] = {
NULL,
&devicefunc_cdimage,
-#ifdef _WIN32
- &devicefunc_win32_ioctl,
- &devicefunc_win32_spti,
+#ifdef WITH_SCSI_IOCTL
+ &devicefunc_scsi_ioctl,
+#else
+ NULL,
+#endif
+#ifdef WITH_SCSI_SPTI
+ &devicefunc_scsi_spti,
+#else
+ NULL,
#endif
- NULL
};
-static int driver_installed[6];
+#define NUM_DEVICE_TABLE_ENTRIES 4
+static int driver_installed[NUM_DEVICE_TABLE_ENTRIES];
static void install_driver (int flags)
{
}
}
- for (int j = 1; devicetable[j]; j++) {
+ for (int j = 1; j < NUM_DEVICE_TABLE_ENTRIES; j++) {
+ if (devicetable[j] == NULL) {
+ continue;
+ }
if (!driver_installed[j]) {
for (int i = 0; i < MAX_TOTAL_SCSI_DEVICES; i++) {
struct blkdevstate *st = &state[i];
sys_command_info (unitnum, &di, 1);
if (log_scsiemu) {
- write_log (_T("SCSIEMU %d: %02X.%02X.%02X.%02X.%02X.%02X.%02X.%02X.%02X.%02X.%02X.%02X CMDLEN=%d DATA=%08X LEN=%d\n"), unitnum,
+ write_log (_T("SCSIEMU %d: %02X.%02X.%02X.%02X.%02X.%02X.%02X.%02X.%02X.%02X.%02X.%02X CMDLEN=%d DATA=%p LEN=%d\n"), unitnum,
cmdbuf[0], cmdbuf[1], cmdbuf[2], cmdbuf[3], cmdbuf[4], cmdbuf[5], cmdbuf[6],
cmdbuf[7], cmdbuf[8], cmdbuf[9], cmdbuf[10], cmdbuf[11],
scsi_cmd_len, scsi_data, dlen);
// media changed and not inquiry
if (st->mediawaschanged && cmd != 0x12) {
if (log_scsiemu) {
- write_log (_T("SCSIEMU %d: MEDIUM MAY HAVE CHANGED STATE\n"));
+ write_log (_T("SCSIEMU %d: MEDIUM MAY HAVE CHANGED STATE\n"), unitnum);
}
lr = -1;
status = 2; /* CHECK CONDITION */
TCHAR vendorid[10];
TCHAR productid[18];
TCHAR revision[6];
- TCHAR *backend;
+ const TCHAR *backend;
struct cd_toc_head toc;
};
extern void blkdev_fix_prefs (struct uae_prefs *p);
extern int isaudiotrack (struct cd_toc_head*, int block);
extern int isdatatrack (struct cd_toc_head*, int block);
+void sub_to_interleaved (const uae_u8 *s, uae_u8 *d);
+void sub_to_deinterleaved (const uae_u8 *s, uae_u8 *d);
enum cd_standard_unit { CD_STANDARD_UNIT_DEFAULT, CD_STANDARD_UNIT_AUDIO, CD_STANDARD_UNIT_CDTV, CD_STANDARD_UNIT_CD32 };
bool filesys_do_disk_change (int, bool);
+extern struct device_functions devicefunc_scsi_ioctl;
+extern struct device_functions devicefunc_scsi_spti;
+extern struct device_functions devicefunc_cdimage;
+
#endif /* BLKDEV_H */