Sun Microsystems, Inc.
spacerspacer
spacer   www.sun.com docs.sun.com | | |  
spacer
black dot
   
A   B   C   D   E   F   G   H   I   J   K   L   M   N   O   P   Q   R   S   T   U   V   W   X   Y   Z
    
 
Data Structures for Driversscsi_status(9S)


NAME

 scsi_status - SCSI status structure

SYNOPSIS

 
#include <sys/scsi/scsi.h> 

INTERFACE LEVEL

 

Solaris DDI specific (Solaris DDI)

DESCRIPTION

 

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.

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 */
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
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 it 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 it 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 it 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.9Go To TopLast Changed 30 Aug 1995

 
      
      
Copyright 2002 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms.