'\" 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 .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