'\" te .\" Copyright (c) 2000, Sun Microsystems, Inc. , All Rights Reserved .TH scsi_status 9S "30 Aug 1995" "SunOS 5.11" "Data Structures for Drivers" .SH NAME scsi_status \- SCSI status structure .SH SYNOPSIS .LP .nf #include .fi .SH INTERFACE LEVEL .sp .LP Solaris DDI specific (Solaris DDI) .SH DESCRIPTION .sp .LP The \fBSCSI-2\fRstandard defines a status byte that is normally sent by the target to the initiator during the status phase at the completion of each command. .SH STRUCTURE MEMBERS .sp .in +2 .nf uchar sts_scsi2 :1; /* SCSI-2 modifier bit */ uchar sts_is :1; /* intermediate status sent */ uchar sts_busy :1; /* device busy or reserved */ uchar sts_cm :1; /* condition met */ ucha sts_chk :1; /* check condition */ .fi .in -2 .sp .LP \fBsts_chk\fR indicates that a contingent allegiance condition has occurred. .sp .LP \fBsts_cm\fR is returned whenever the requested operation is satisfied .sp .LP \fBsts_busy\fR indicates that the target is busy. This status is returned whenever a target is unable to accept a command from an otherwise acceptable initiator (that is, no reservation conflicts). The recommended initiator recovery action is to issue the command again later. .sp .LP \fBsts_is\fR is returned for every successfully completed command in a series of linked commands (except the last command), unless the command is terminated with a check condition status, reservation conflict, or command terminated status. Note that host bus adapter drivers may not support linked commands (see \fBscsi_ifsetcap\fR(9F)). If \fBsts_is\fR and \fBsts_busy\fR are both set, then a reservation conflict has occurred. .sp .LP \fBsts_scsi2\fR is the \fBSCSI-2 \fRmodifier bit. If \fBsts_scsi2\fR and \fBsts_chk\fR are both set, this indicates a command terminated status. If \fBsts_scsi2\fR and \fBsts_busy\fR are both set, this indicates that the command queue in the target is full. .sp .LP For accessing the status as a byte, the following values are appropriate: .sp .ne 2 .mk .na \fB\fBSTATUS_GOOD\fR \fR .ad .sp .6 .RS 4n This status indicates that the target has successfully completed the command. .RE .sp .ne 2 .mk .na \fB\fBSTATUS_CHECK\fR \fR .ad .sp .6 .RS 4n This status indicates that a contingent allegiance condition has occurred. .RE .sp .ne 2 .mk .na \fB\fBSTATUS_MET\fR \fR .ad .sp .6 .RS 4n This status is returned when the requested operations are satisfied. .RE .sp .ne 2 .mk .na \fB\fBSTATUS_BUSY\fR \fR .ad .sp .6 .RS 4n This status indicates that the target is busy. .RE .sp .ne 2 .mk .na \fB\fBSTATUS_INTERMEDIATE\fR \fR .ad .sp .6 .RS 4n This status is returned for every successfully completed command in a series of linked commands. .RE .sp .ne 2 .mk .na \fB\fBSTATUS_SCSI2\fR \fR .ad .sp .6 .RS 4n This is the \fBSCSI-2 \fRmodifier bit. .RE .sp .ne 2 .mk .na \fB\fBSTATUS_INTERMEDIATE_MET\fR \fR .ad .sp .6 .RS 4n This status is a combination of \fBSTATUS_MET\fR and \fBSTATUS_INTERMEDIATE\fR. .RE .sp .ne 2 .mk .na \fB\fBSTATUS_RESERVATION_CONFLICT\fR \fR .ad .sp .6 .RS 4n This status is a combination of \fBSTATUS_INTERMEDIATE\fR and \fBSTATUS_BUSY\fR, and it is returned whenever an initiator attempts to access a logical unit or an extent within a logical unit is reserved. .RE .sp .ne 2 .mk .na \fB\fBSTATUS_TERMINATED\fR \fR .ad .sp .6 .RS 4n This status is a combination of \fBSTATUS_SCSI2\fR and \fBSTATUS_CHECK,\fR and it is returned whenever the target terminates the current \fBI/O\fR process after receiving a terminate \fBI/O\fR process message. .RE .sp .ne 2 .mk .na \fB\fBSTATUS_QFULL\fR \fR .ad .sp .6 .RS 4n This status is a combination of \fBSTATUS_SCSI2\fR and \fBSTATUS_BUSY\fR, and it is returned when the command queue in the target is full. .RE .SH SEE ALSO .sp .LP \fBscsi_ifgetcap\fR(9F), \fBscsi_init_pkt\fR(9F), \fBscsi_extended_sense\fR(9S), \fBscsi_pkt\fR(9S) .sp .LP \fIWriting Device Drivers for Oracle Solaris 11.2\fR