#define scsi_log write_log
#endif
+extern int log_scsiemu;
+
#define MAX_ASYNC_REQUESTS 50
#define ASYNC_REQUEST_NONE 0
#define ASYNC_REQUEST_TEMP 1
}
if (chd_readonly)
hfd->ci.readonly = true;
- hfd->virtsize = cf->logical_bytes ();
+ hfd->virtsize = cf->logical_bytes();
hfd->handle_valid = -1;
write_log(_T("CHD '%s' mounted as %s, %s.\n"), pname, chdf ? _T("HD") : _T("OTHER"), hfd->ci.readonly ? _T("read only") : _T("read/write"));
- goto nonvhd;
+ return 1;
}
}
#endif
hdf_init_cache (hfd);
return 1;
nonvhd:
+ hfd->hfd_type = 0;
return 1;
end:
hdf_close_target (hfd);
int i, lun;
char *ss;
+ if (log_scsiemu) {
+ write_log (_T("SCSIEMU HD %d: %02X.%02X.%02X.%02X.%02X.%02X.%02X.%02X.%02X.%02X.%02X.%02X CMDLEN=%d DATA=%p\n"), hfd->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);
+ }
+
*reply_len = *sense_len = 0;
lun = cmdbuf[1] >> 5;
if (cmdbuf[0] != 0x03 && cmdbuf[0] != 0x12 && lun) {
ls = 0x12;
break;
}
+
+ if (log_scsiemu && ls) {
+ write_log (_T("-> SENSE STATUS: KEY=%d ASC=%02X ASCQ=%02X\n"), s[2], s[12], s[13]);
+ }
+
+ if (cmdbuf[0] && log_scsiemu)
+ write_log (_T("-> DATAOUT=%d ST=%d SENSELEN=%d REPLYLEN=%d\n"), scsi_len, status, ls, lr);
+
*data_len = scsi_len;
*reply_len = lr;
*sense_len = ls;