SCSI_STATUS(9S) | Data Structures for Drivers | SCSI_STATUS(9S) |
scsi_status - SCSI status structure
#include <sys/scsi/scsi.h>
illumos DDI specific (illumos DDI)
The SCSI-2standard defines a status byte that is normally sent by the target to the initiator during the status phase at the completion of each command.
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 */
sts_chk indicates that a contingent allegiance condition has occurred.
sts_cm is returned whenever the requested operation is satisfied
sts_busy 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.
sts_is 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 scsi_ifsetcap(9F)). If sts_is and sts_busy are both set, then a reservation conflict has occurred.
sts_scsi2 is the SCSI-2 modifier bit. If sts_scsi2 and sts_chk are both set, this indicates a command terminated status. If sts_scsi2 and sts_busy are both set, this indicates that the command queue in the target is full.
For accessing the status as a byte, the following values are appropriate:
STATUS_GOOD
STATUS_CHECK
STATUS_MET
STATUS_BUSY
STATUS_INTERMEDIATE
STATUS_SCSI2
STATUS_INTERMEDIATE_MET
STATUS_RESERVATION_CONFLICT
STATUS_TERMINATED
STATUS_QFULL
scsi_ifgetcap(9F), scsi_init_pkt(9F), scsi_extended_sense(9S), scsi_pkt(9S)
Writing Device Drivers
August 30, 1995 | OmniOS |