ata_scsi_translate — Translate then issue SCSI command to ATA device
void ata_scsi_translate ( | struct ata_port * | ap, |
| struct ata_device * | dev, | |
| struct scsi_cmnd * | cmd, | |
| void (* | done)
(struct scsi_cmnd *), | |
| ata_xlat_func_t | xlat_func); |
ATA port to which the command is addressed
ATA device to which the command is addressed
SCSI command to execute
SCSI command completion function
Actor which translates cmd to an ATA taskfile
Our ->queuecommand function has decided that the SCSI command issued can be directly translated into an ATA command, rather than handled internally.
This function sets up an ata_queued_cmd structure for the SCSI command, and sends that ata_queued_cmd to the hardware.
The xlat_func argument (actor) returns 0 if ready to execute ATA command, else 1 to finish translation. If 1 is returned then cmd->result (and possibly cmd->sense_buffer) are assumed to be set reflecting an error condition or clean (early) termination.