| Current File : //usr/man/man9s/scsi_hba_tran.9s |
'\" te
.\" Copyright (c) 2006 Sun Microsystems, Inc., All Rights Reserved
.TH scsi_hba_tran 9S "30 May 2006" "SunOS 5.11" "Data Structures for Drivers"
.SH NAME
scsi_hba_tran \- SCSI Host Bus Adapter (HBA) driver transport vector structure
.SH SYNOPSIS
.LP
.nf
#include <sys/scsi/scsi.h>
.fi
.SH INTERFACE LEVEL
.sp
.LP
Solaris architecture specific (Solaris DDI).
.SH DESCRIPTION
.sp
.LP
A \fBscsi_hba_tran_t\fR structure defines vectors that an \fBHBA\fR driver exports to \fBSCSA\fR interfaces so that \fBHBA\fR specific functions can be executed.
.SH STRUCTURE MEMBERS
.sp
.in +2
.nf
dev_info_t *tran_hba_dip; /* HBAs dev_info
pointer */
void *tran_hba_private; /* HBA softstate */
void *tran_tgt_private; /* HBA target private
pointer */
struct scsi_device *tran_sd; /* scsi_device */
int (*tran_tgt_init)( ); /* Transport target */
Initialization */
int (*tran_tgt_probe)( ); /* Transport target
probe */
void (*tran_tgt_free)( ); /* Transport target
free */
int (*tran_start)( ); /* Transport start */
int (*tran_reset)( ); /* Transport reset */
int (*tran_abort)( ); /* Transport abort */
int (*tran_getcap)( ); /* Capability
retrieval */
int (*tran_setcap)( ); /* Capability
establishment */
struct scsi_pkt *(*tran_init_pkt)( ); /* Packet and DMA
allocation */
void (*tran_destroy_pkt)( ); /* Packet and DMA */
deallocation */
void (*tran_dmafree)( ); /* DMA deallocation */
void (*tran_sync_pkt)( ); /* Sync DMA */
void (*tran_reset_notify)( );/* Bus reset
notification */
int (*tran_bus_reset)( ); /* Reset bus only */
int (*tran_quiesce)( ); /* Quiesce a bus */
int (*tran_unquiesce)( ); /* Unquiesce a bus */
int (*tran_setup_pkt)( ); /* Initialization
for pkt */
int (*tran_teardown_pkt)( );/* Deallocation */
int (*tran_pkt_constructor) ( );
/* Constructor */
int (*tran_pkt_destructor) ( );
/* Destructor */
int tran_hba_len; /* # bytes for
pkt_ha_private */
int tran_interconnect_type; /* transport
interconnect */
.fi
.in -2
.sp
.ne 2
.mk
.na
\fB\fBtran_hba_dip\fR\fR
.ad
.RS 26n
.rt
\fBdev_info\fR pointer to the \fBHBA\fR that supplies the \fBscsi_hba_tran\fR structure.
.RE
.sp
.ne 2
.mk
.na
\fB\fBtran_hba_private\fR\fR
.ad
.RS 26n
.rt
Private pointer that the \fBHBA\fR driver can use to refer to the device's soft state structure.
.RE
.sp
.ne 2
.mk
.na
\fB\fBtran_tgt_private\fR\fR
.ad
.RS 26n
.rt
Private pointer that the \fBHBA\fR can use to refer to per-target specific data. This field can only be used when the \fBSCSI_HBA_TRAN_CLONE\fR flag is specified in \fBscsi_hba_attach\fR(9F). In this case, the \fBHBA\fR driver must initialize this field in its \fBtran_tgt_init\fR(9E) entry point.
.RE
.sp
.ne 2
.mk
.na
\fB\fBtran_sd\fR\fR
.ad
.RS 26n
.rt
Pointer to \fBscsi_device\fR(9S) structure if cloning; otherwise \fINULL\fR.
.RE
.sp
.ne 2
.mk
.na
\fB\fBtran_tgt_init\fR\fR
.ad
.RS 26n
.rt
Function entry that allows per-target \fBHBA\fR initialization, if necessary.
.RE
.sp
.ne 2
.mk
.na
\fB\fBtran_tgt_probe\fR\fR
.ad
.RS 26n
.rt
Function entry that allows per-target \fBscsi_probe\fR(9F) customization, if necessary.
.RE
.sp
.ne 2
.mk
.na
\fB\fBtran_tgt_free\fR\fR
.ad
.RS 26n
.rt
Function entry that allows per-target \fBHBA\fR deallocation, if necessary.
.RE
.sp
.ne 2
.mk
.na
\fB\fBtran_start\fR\fR
.ad
.RS 26n
.rt
Function entry that starts a \fBSCSI\fR command execution on the \fBHBA\fR hardware.
.RE
.sp
.ne 2
.mk
.na
\fB\fBtran_reset\fR\fR
.ad
.RS 26n
.rt
Function entry that resets a \fBSCSI\fR bus or target device.
.RE
.sp
.ne 2
.mk
.na
\fB\fBtran_abort\fR\fR
.ad
.RS 26n
.rt
Function entry that aborts one \fBSCSI\fR command, or all pending \fBSCSI\fR commands.
.RE
.sp
.ne 2
.mk
.na
\fB\fBtran_getcap\fR\fR
.ad
.RS 26n
.rt
Function entry that retrieves a \fBSCSI\fR capability.
.RE
.sp
.ne 2
.mk
.na
\fB\fBtran_setcap\fR\fR
.ad
.RS 26n
.rt
Function entry that sets a \fBSCSI\fR capability.
.RE
.sp
.ne 2
.mk
.na
\fB\fBtran_init_pkt\fR\fR
.ad
.RS 26n
.rt
Function entry that allocates a \fBscsi_pkt\fR structure.
.RE
.sp
.ne 2
.mk
.na
\fB\fBtran_destroy_pkt\fR\fR
.ad
.RS 26n
.rt
Function entry that frees a \fBscsi_pkt\fR structure allocated by \fBtran_init_pkt\fR.
.RE
.sp
.ne 2
.mk
.na
\fB\fBtran_dmafree\fR\fR
.ad
.RS 26n
.rt
Function entry that frees \fBDMA\fR resources that were previously allocated by \fBtran_init_pkt\fR. Not called for \fBHBA\fR drivers that provide a \fBtran_setup_pkt\fR entry point.
.RE
.sp
.ne 2
.mk
.na
\fB\fBtran_sync_pkt\fR\fR
.ad
.RS 26n
.rt
Synchronizes data in \fIpkt\fR after a data transfer has been completed. Not called for \fBHBA\fR drivers that provide a \fBtran_setup_pkt\fR entry point.
.RE
.sp
.ne 2
.mk
.na
\fB\fBtran_reset_notify\fR\fR
.ad
.RS 26n
.rt
Function entry that allows a target to register a bus reset notification request with the \fBHBA\fR driver.
.RE
.sp
.ne 2
.mk
.na
\fB\fBtran_bus_reset\fR\fR
.ad
.RS 26n
.rt
Function entry that resets the \fBSCSI\fR bus without resetting targets.
.RE
.sp
.ne 2
.mk
.na
\fB\fBtran_quiesce\fR\fR
.ad
.RS 26n
.rt
Function entry that waits for all outstanding commands to complete and blocks (or queues) any \fBI/O\fR requests issued.
.RE
.sp
.ne 2
.mk
.na
\fB\fBtran_unquiesce\fR\fR
.ad
.RS 26n
.rt
Function entry that allows \fBI/O\fR activities to resume on the \fBSCSI\fR bus.
.RE
.sp
.ne 2
.mk
.na
\fB\fBtran_setup_pkt\fR\fR
.ad
.RS 26n
.rt
Optional entry point that initializes a \fBscsi_pkt\fR structure. See \fBtran_setup_pkt\fR(9E).
.RE
.sp
.ne 2
.mk
.na
\fB\fBtran_teardown_pkt\fR\fR
.ad
.RS 26n
.rt
Entry point that releases resources allocated by \fBtran_setup_pkt\fR.
.RE
.sp
.ne 2
.mk
.na
\fB\fBtran_pkt_constructor\fR\fR
.ad
.RS 26n
.rt
Additional optional entry point that performs the actions of a constructor. See \fBtran_setup_pkt\fR(9E).
.RE
.sp
.ne 2
.mk
.na
\fB\fBtran_pkt_destructor\fR\fR
.ad
.RS 26n
.rt
Additional optional entry point that performs the actions of a destructor. See \fBtran_setup_pkt\fR(9E).
.RE
.sp
.ne 2
.mk
.na
\fB\fBtran_hba_len\fR\fR
.ad
.RS 26n
.rt
Size of \fBpkt_ha_private\fR. See \fBtran_setup_pkt\fR(9E).
.RE
.sp
.ne 2
.mk
.na
\fB\fBtran_interconnect_type\fR\fR
.ad
.RS 26n
.rt
Integer value that denotes the interconnect type of the transport as defined in the \fBservices.h\fR header file.
.RE
.SH SEE ALSO
.sp
.LP
\fBtran_abort\fR(9E), \fBtran_bus_reset\fR(9E), \fBtran_destroy_pkt\fR(9E), \fBtran_dmafree\fR(9E), \fBtran_getcap\fR(9E), \fBtran_init_pkt\fR(9E), \fBtran_quiesce\fR(9E), \fBtran_reset\fR(9E), \fBtran_reset_notify\fR(9E), \fBtran_setcap\fR(9E), \fBtran_setup_pkt\fR(9E), \fBtran_start\fR(9E), \fBtran_sync_pkt\fR(9E), \fBtran_tgt_free\fR(9E), \fBtran_tgt_init\fR(9E), \fBtran_tgt_probe\fR(9E), \fBtran_unquiesce\fR(9E), \fBddi_dma_sync\fR(9F), \fBscsi_hba_attach\fR(9F), \fBscsi_hba_pkt_alloc\fR(9F), \fBscsi_hba_pkt_free\fR(9F), \fBscsi_probe\fR(9F), \fBscsi_device\fR(9S), \fBscsi_pkt\fR(9S)
.sp
.LP
\fIWriting Device Drivers for Oracle Solaris 11.2\fR