'\" te .\" Copyright (c) 2005, Sun Microsystems, Inc. All Rights Reserved .TH tran_reset 9E "17 Aug 2005" "SunOS 5.11" "Driver Entry Points" .SH NAME tran_reset \- reset a SCSI bus or target .SH SYNOPSIS .LP .nf #include \fB int prefix\fR\fBtran_reset\fR(\fBstruct scsi_address *\fR\fIap\fR, \fBint\fR \fIlevel\fR); .fi .SH INTERFACE LEVEL .sp .LP Solaris architecture specific (Solaris DDI). .SH PARAMETERS .sp .ne 2 .mk .na \fB\fIap\fR \fR .ad .RS 10n .rt Pointer to the \fBscsi_address\fR(9S) structure. .RE .sp .ne 2 .mk .na \fB\fIlevel\fR \fR .ad .RS 10n .rt The level of reset required. .RE .SH DESCRIPTION .sp .LP The \fBtran_reset()\fR vector in the \fBscsi_hba_tran\fR(9S) structure must be initialized during the \fBHBA\fR driver's \fBattach\fR(9E) to point to an \fBHBA\fR entry point to be called when a target driver calls \fBscsi_reset\fR(9F). .sp .LP \fBtran_reset()\fR must reset either the \fBSCSI\fR bus, a \fBSCSI\fR target device, or a \fBSCSI\fR logical unit as specified by \fIlevel\fR. .sp .LP \fIlevel\fR must be one of the following: .sp .ne 2 .mk .na \fB\fBRESET_ALL\fR \fR .ad .RS 17n .rt Reset the \fBSCSI\fR bus. .RE .sp .ne 2 .mk .na \fB\fBRESET_TARGET\fR \fR .ad .RS 17n .rt Reset the target specified by \fIap\fR. .RE .sp .ne 2 .mk .na \fB\fBRESET_LUN\fR \fR .ad .RS 17n .rt Reset the logical unit specified by \fIap\fR. .RE .sp .LP \fBtran_reset\fR should set the \fBpkt_reason\fR field of all outstanding packets in the transport layer associated with each target or logical unit that was successfully reset to \fBCMD_RESET\fR and the \fBpkt_statistics\fR field must be \fBOR\fR'ed with either \fBSTAT_BUS_RESET\fR (if the SCSI bus was reset) or \fBSTAT_DEV_RESET\fR (if the target or logical unit was reset). .sp .LP The \fBHBA\fR driver should use a \fBSCSI\fR Bus Device Reset Message to reset a target device. The HBA driver should use a SCSI Logical Unit Reset Message to reset a logical unit. .sp .LP Packets that are in the transport layer but not yet active on the bus should be returned with \fBpkt_reason\fR set to \fBCMD_RESET\fR and \fBpkt_statistics\fR \fBOR\fR'ed with \fBSTAT_ABORTED\fR. .sp .LP Support for \fBRESET_LUN\fR is optional but strongly encouraged for new and updated HBA drivers. If an HBA driver provides \fBRESET_LUN\fR support, it must also create the \fBlun-reset\fR capability with a value of zero for each target device instance represented by a valid \fIap\fR. The HBA is also required to provide the means to return the current value of the \fBlun-reset\fR capability in its \fBtran_getcap\fR(9E) routine, as well as the means to change the value of the \fBlun_reset\fR capability in its \fBtran_getcap\fR(9E) routine. .SH RETURN VALUES .sp .LP \fBtran_reset()\fR should return: .sp .ne 2 .mk .na \fB\fB1\fR \fR .ad .RS 6n .rt on success. .RE .sp .ne 2 .mk .na \fB\fB0\fR \fR .ad .RS 6n .rt on failure. .RE .SH CONTEXT .sp .LP The \fBtran_reset()\fR function can be called from user or interrupt context. This requirement comes from \fBscsi_reset()\fR. .SH SEE ALSO .sp .LP \fBattach\fR(9E), \fBddi_dma_buf_setup\fR(9F), \fBscsi_hba_attach\fR(9F), \fBscsi_reset\fR(9F), \fBscsi_address\fR(9S), \fBscsi_hba_tran\fR(9S) .sp .LP \fIWriting Device Drivers for Oracle Solaris 11.2\fR .SH NOTES .sp .LP If \fBpkt_reason\fR already indicates that an earlier error had occurred for a particular \fIpkt\fR, \fBtran_reset()\fR should not overwrite \fBpkt_reason\fR with \fBCMD_RESET\fR.