SCSI_TRANSPORT(9F)      Kernel Functions for Drivers      SCSI_TRANSPORT(9F)
NAME
       scsi_transport - request by a SCSI target driver to start a command
SYNOPSIS
       #include <sys/scsi/scsi.h>       
int scsi_transport(
struct scsi_pkt *pkt);
INTERFACE LEVEL
       illumos DDI specific (illumos DDI).
PARAMETERS
       pkt              Pointer to a 
scsi_pkt(9S) structure.
DESCRIPTION
       Target drivers use 
scsi_transport() to request the host adapter
       driver to transport a command to the 
SCSI target device specified by       
pkt. The target driver must obtain resources for the packet using       
scsi_init_pkt(9F) prior to calling this function. The packet may be
       initialized using one of the 
makecom(9F) functions.  
scsi_transport()       does not wait for the 
SCSI command to complete.  See 
scsi_poll(9F)       for a description of polled 
SCSI commands. Upon completion of the       
SCSI command the host adapter calls the completion routine provided
       by the target driver in the 
pkt_comp member of the 
scsi_pkt pointed
       to by 
pkt.
RETURN VALUES
       The 
scsi_transport() function returns:       
TRAN_ACCEPT                           The packet was accepted by the transport layer.       
TRAN_BUSY                           The packet could not be accepted because there
                           was already a packet in progress for this
                           target/lun, the host adapter queue was full, or
                           the target device queue was full.       
TRAN_BADPKT                           The 
DMA count in the packet exceeded the 
DMA                           engine's maximum 
DMA size.       
TRAN_FATAL_ERROR                           A fatal error has occurred in the transport
                           layer.
CONTEXT
       The 
scsi_transport() function can be called from user, interrupt, or
       kernel context.
EXAMPLES
       Example 1: Using scsi_transport()
         if ((status = scsi_transport(rqpkt)) != TRAN_ACCEPT) {
               scsi_log(devp, sd_label, CE_WARN,
                   "transport of request sense pkt fails (0x%x)\n", status);
         }
SEE ALSO
       tran_start(9E), 
makecom(9F), 
scsi_init_pkt(9F), 
scsi_pktalloc(9F),       
scsi_poll(9F), 
scsi_pkt(9S)       Writing Device Drivers                              January 16, 2006            SCSI_TRANSPORT(9F)