Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ scsi_status(9S) — SunOS 5.5.1

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

scsi_ifgetcap(9F)

scsi_init_pkt(9F)

scsi_extended_sense(9S)

scsi_pkt(9S)

scsi_status(9S)

NAME

scsi_status − SCSI status structure

SYNOPSIS

#include <sys/scsi/scsi.h>

INTERFACE LEVEL

Solaris DDI specific (Solaris DDI)

DESCRIPTION

The SCSI-2 standard defines a status byte which is normally sent by the target to the initiator during the status phase at the completion of each command. 

STRUCTURE MEMBERS

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 ∗/
uchar 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 at a later time. 

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 This status indicates that the target has successfully completed the command. 

STATUS_CHECK This status indicates that a contingent allegiance condition has occurred. 

STATUS_MET This status is returned when the requested operations are satisfied. 

STATUS_BUSY This status indicates that the target is busy. 

STATUS_INTERMEDIATE
This status is returned for every successfully completed command in a series of linked commands.

STATUS_SCSI2 This is the SCSI-2 modifier bit. 

STATUS_INTERMEDIATE_MET
This status is a combination of STATUS_MET and STATUS_INTERMEDIATE.

STATUS_RESERVATION_CONFLICT
This status is a combination of STATUS_INTERMEDIATE and STATUS_BUSY, and is returned whenever an initiator attempts to access a logical unit or an extent within a logical unit is reserved. 

STATUS_TERMINATED
This status is a combination of STATUS_SCSI2 and STATUS_CHECK, and is returned whenever the target terminates the current I/O process after receiving a terminate I/O process message. 

STATUS_QFULL This status is a combination of STATUS_SCSI2 and STATUS_BUSY, and is returned when the command queue in the target is full. 

SEE ALSO

scsi_ifgetcap(9F), scsi_init_pkt(9F), scsi_extended_sense(9S), scsi_pkt(9S)

Writing Device Drivers

SunOS 5.5.1  —  Last change: 30 Aug 1995

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026