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

     Solaris DDI specific (Solaris 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

     scsi_transport() 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

     scsi_transport() can be called from user or  interrupt  con-
     text.


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


Man(1) output converted with man2html