sd->sense_len = 0x12;
}
sd->unit_attention = 0;
- copysense(sd);
return true;
}
if (handle_ca(sd)) {
if (sd->cmd[0] == 0x03) { /* REQUEST SENSE */
scsi_cd_emulate(sd->cd_emu_unit, sd->cmd, 0, 0, 0, 0, 0, 0, 0, sd->atapi); /* ack request sense */
+ copysense(sd);
} else {
sd->status = scsi_cd_emulate(sd->cd_emu_unit, sd->cmd, sd->cmd_len, sd->buffer, &sd->data_len, sd->reply, &sd->reply_len, sd->sense, &sd->sense_len, sd->atapi);
copyreply(sd);
if (handle_ca(sd)) {
if (sd->cmd[0] == 0x03) { /* REQUEST SENSE */
scsi_hd_emulate(&sd->hfd->hfd, sd->hfd, sd->cmd, 0, 0, 0, 0, 0, sd->sense, &sd->sense_len);
+ copysense(sd);
} else {
sd->status = scsi_hd_emulate(&sd->hfd->hfd, sd->hfd,
sd->cmd, sd->cmd_len, sd->buffer, &sd->data_len, sd->reply, &sd->reply_len, sd->sense, &sd->sense_len);
if (handle_ca(sd)) {
if (sd->cmd[0] == 0x03) { /* REQUEST SENSE */
scsi_tape_emulate(sd->tape, sd->cmd, 0, 0, 0, sd->reply, &sd->reply_len, sd->sense, &sd->sense_len); /* get request sense extra bits */
+ copysense(sd);
} else {
sd->status = scsi_tape_emulate(sd->tape,
sd->cmd, sd->cmd_len, sd->buffer, &sd->data_len, sd->reply, &sd->reply_len, sd->sense, &sd->sense_len);