Provided by: linux-doc-2.6.15_2.6.15-23.39_all bug

NAME

       ata_scsi_translate - Translate then issue SCSI command to ATA device

SYNOPSIS

       void ata_scsi_translate  (struct ata_port * ap,
                                  struct ata_device * dev,
                                  struct scsi_cmnd * cmd,
                                  void (*done) <funcparams>struct scsi_cmnd *</funcparams>,
                                  ata_xlat_func_t xlat_func);

ARGUMENTS

       ap     ATA port to which the command is addressed

       dev    ATA device to which the command is addressed

       cmd    SCSI command to execute

       done   SCSI command completion function

       xlat_func
              Actor which translates cmd to an ATA taskfile

DESCRIPTION

       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.

LOCKING

       spin_lock_irqsave(host_set lock)

AUTHOR

       Jeff Garzik.