Kernel Functions for Drivers scsi_transport(9F)
NAME
scsi_transport - request by a SCSI target driver to start a
commandSYNOPSIS
#include
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 obtainresources for the packet using scsi_init_pkt(9F) prior to
calling this function. The packet may be initialized usingone 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 ofthe SCSI command the host adapter calls the completion rou-
tine 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 tran-
sport layer.SunOS 5.11 Last change: 16 Jan 2006 1
Kernel Functions for Drivers scsi_transport(9F)
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 DriversSunOS 5.11 Last change: 16 Jan 2006 2