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_extended_sense(9S)


NAME

 scsi_extended_sense - SCSI extended sense structure

SYNOPSIS

 
#include <sys/scsi/scsi.h>

INTERFACE LEVEL

 

Solaris DDI specific (Solaris DDI).

DESCRIPTION

 

The scsi_extended_sense structure for error codes 0x70 (current errors) and 0x71 (deferred errors) is returned on a successful REQUEST SENSE command. SCSI-2 compliant targets are required to return at least the first 18 bytes of this structure. This structure is part of scsi_device(9S) structure.

STRUCTURE MEMBERS

 
 
uchar_t  es_valid        :1;     /* Sense data is valid */
uchar_t  es_class        :3;     /* Error Class- fixed at 0x7 */
uchar_t  es_code         :4;     /* Vendor Unique error code */
uchar_t  es_segnum;              /* Segment number: for COPY cmd only */
uchar_t  es_filmk        :1;     /* File Mark Detected */
uchar_t  es_eom          :1;     /* End of Media */
uchar_t  es_ili          :1;     /* Incorrect Length Indicator */
uchar_t  es_key          :4;     /* Sense key */
uchar_t  es_info_1;              /* Information byte 1 */
uchar_t  es_info_2;              /* Information byte 2 */
uchar_t  es_info_3;              /* Information byte 3 */
uchar_t  es_info_4;              /* Information byte 4 */
uchar_t  es_add_len;             /* Number of additional bytes */
uchar_t  es_cmd_info[4];         /* Command specific information */
uchar_t  es_add_code;            /* Additional Sense Code */
uchar_t  es_qual_code;           /* Additional Sense Code Qualifier */
uchar_t  es_fru_code;            /* Field Replaceable Unit Code */
uchar_t  es_skey_specific[3];    /* Sense Key Specific information */

es_valid, if set, indicates that the information field contains valid information.

es_class should be 0x7.

es_code is either 0x0 or 0x1.

es_segnum contains the number of the current segment descriptor if the REQUEST SENSE command is in response to a COPY, COMPARE, and COPY AND VERIFY command.

es_filmk, if set, indicates that the current command had read a file mark or set mark (sequential access devices only).

es_eom, if set, indicates that an end-of-medium condition exists (sequential access and printer devices only).

es_ili, if set, indicates that the requested logical block length did not match the logical block length of the data on the medium.

es_key indicates generic information describing an error or exception condition. The following sense keys are defined:

KEY_NO_SENSE
Indicates that there is no specific sense key information to be reported.
KEY_RECOVERABLE_ERROR
Indicates that the last command completed successfully with some recovery action performed by the target.
KEY_NOT_READY
Indicates that the logical unit addressed cannot be accessed.
KEY_MEDIUM_ERROR
Indicates that the command terminated with a non-recovered error condition that was probably caused by a flaw on the medium or an error in the recorded data.
KEY_HARDWARE_ERROR
Indicates that the target detected a non-recoverable hardware failure while performing the command or during a self test.
KEY_ILLEGAL_REQUEST
Indicates that there was an illegal parameter in the CDB or in the additional parameters supplied as data for some commands.
KEY_UNIT_ATTENTION
Indicates that the removable medium might have been changed or the target has been reset.
KEY_WRITE_PROTECT/KEY_DATA_PROTECT
Indicates that a command that reads or writes the medium was attempted on a block that is protected from this operation.
KEY_BLANK_CHECK
Indicates that a write-once device or a sequential access device encountered blank medium or format-defined end-of-data indication while reading or a write-once device encountered a non-blank medium while writing.
KEY_VENDOR_UNIQUE
This sense key is available for reporting vendor-specific conditions.
KEY_COPY_ABORTED
Indicates that a COPY, COMPARE, and COPY AND VERIFY command was aborted.
KEY_ABORTED_COMMAND
Indicates that the target aborted the command.
KEY_EQUAL
Indicates that a SEARCH DATA command has satisfied an equal comparison.
KEY_VOLUME_OVERFLOW
Indicates that a buffered peripheral device has reached the end-of-partition and data might remain in the buffer that has not been written to the medium.
KEY_MISCOMPARE
Indicates that the source data did not match the data read from the medium.
KEY_RESERVE
Indicates that the target is currently reserved by a different initiator.
es_info_{1,2,3,4} is device-type or command specific.

es_add_len indicates the number of additional sense bytes to follow.

es_cmd_info contains information that depends on the command that was executed.

es_add_code (ASC) indicates further information related to the error or exception condition reported in the sense key field.

es_qual_code (ASCQ) indicates detailed information related to the additional sense code.

es_fru_code (FRU) indicates a device-specific mechanism to unit that has failed.

es_skey_specific is defined when the value of the sense-key specific valid bit (bit 7) is 1. This field is reserved for sense keys not defined above.

SEE ALSO

 

scsi_device(9S)

ANSI Small Computer System Interface-2 (SCSI-2)

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.