|
Mac Dev Center
Mac OS X Reference Library Drivers, Kernel, & Hardware: Kernel Device Drivers Kernel Framework Reference
|
SCSICmds_REQUEST_SENSE_Defs.h |
| Includes: |
<IOKit/IOTypes.h> <CoreFoundation/CoreFoundation.h> |
This file contains all definitions for the data returned from the REQUEST SENSE (0x03) command and from auto sense on protocols that support it.
SCSI_Sense_Data |
typedef struct SCSI_Sense_Data { UInt8 VALID_RESPONSE_CODE; // 7 = Valid. 6-0 = Response Code. UInt8 SEGMENT_NUMBER; // Segment number UInt8 SENSE_KEY; // 7 = FILEMARK, 6 = EOM, 5 = ILI, 3-0 = SENSE KEY. UInt8 INFORMATION_1; // INFORMATION. UInt8 INFORMATION_2; // INFORMATION. UInt8 INFORMATION_3; // INFORMATION. UInt8 INFORMATION_4; // INFORMATION. UInt8 ADDITIONAL_SENSE_LENGTH; // Number of additional bytes available in sense data UInt8 COMMAND_SPECIFIC_INFORMATION_1; // Command Specific Information UInt8 COMMAND_SPECIFIC_INFORMATION_2; // Command Specific Information UInt8 COMMAND_SPECIFIC_INFORMATION_3; // Command Specific Information UInt8 COMMAND_SPECIFIC_INFORMATION_4; // Command Specific Information UInt8 ADDITIONAL_SENSE_CODE; // Additional Sense Code UInt8 ADDITIONAL_SENSE_CODE_QUALIFIER; // Additional Sense Code Qualifier UInt8 FIELD_REPLACEABLE_UNIT_CODE; // Field Replaceable Unit Code UInt8 SKSV_SENSE_KEY_SPECIFIC_MSB; // 7 = Sense Key Specific Valid bit, 6-0 Sense Key Specific MSB UInt8 SENSE_KEY_SPECIFIC_MID; // Sense Key Specific Middle UInt8 SENSE_KEY_SPECIFIC_LSB; // Sense Key Specific LSB } SCSI_Sense_Data;
The basic SCSI Request Sense data structure.
EOM bit field definitions |
enum { kSENSE_EOM_Set = 0x40, kSENSE_EOM_Not_Set = 0x00, kSENSE_EOM_Mask = 0x40 };
kSENSE_EOM_SetEnd Of Medium bit is set.
kSENSE_EOM_Not_SetEnd Of Medium bit is not set.
kSENSE_EOM_MaskMask to use when checking the SENSE_KEY field for the EOM bit.
Masks and values to determine the End Of Medium bit field.
FILEMARK bit field definitions |
enum { kSENSE_FILEMARK_Set = 0x80, kSENSE_FILEMARK_Not_Set = 0x00, kSENSE_FILEMARK_Mask = 0x80 };
kSENSE_FILEMARK_SetFilemark bit is set.
kSENSE_FILEMARK_Not_SetFilemark bit is not set.
kSENSE_FILEMARK_MaskMask to use when checking the SENSE_KEY field for the FILEMARK bit.
Masks and values to determine the FileMark bit field.
ILI bit field definitions |
enum { kSENSE_ILI_Set = 0x20, kSENSE_ILI_Not_Set = 0x00, kSENSE_ILI_Mask = 0x20 };
kSENSE_ILI_SetIncorrect Length Indicator bit is set.
kSENSE_ILI_Not_SetIncorrect Length Indicator bit is not set.
kSENSE_ILI_MaskMask to use when checking the SENSE_KEY field for the ILI bit.
Masks and values to determine the Incorrect Length Indicator bit field.
kSenseDefaultSize |
enum { kSenseDefaultSize = 18 };
The default size for SCSI Request Sense data.
Sense Key definitions |
enum { kSENSE_KEY_NO_SENSE = 0x00, kSENSE_KEY_RECOVERED_ERROR = 0x01, kSENSE_KEY_NOT_READY = 0x02, kSENSE_KEY_MEDIUM_ERROR = 0x03, kSENSE_KEY_HARDWARE_ERROR = 0x04, kSENSE_KEY_ILLEGAL_REQUEST = 0x05, kSENSE_KEY_UNIT_ATTENTION = 0x06, kSENSE_KEY_DATA_PROTECT = 0x07, kSENSE_KEY_BLANK_CHECK = 0x08, kSENSE_KEY_VENDOR_SPECIFIC = 0x09, kSENSE_KEY_COPY_ABORTED = 0x0A, kSENSE_KEY_ABORTED_COMMAND = 0x0B, /* SENSE KEY 0x0C is obsoleted */ kSENSE_KEY_VOLUME_OVERFLOW = 0x0D, kSENSE_KEY_MISCOMPARE = 0x0E, /* SENSE KEY 0x0F is reserved */ kSENSE_KEY_Mask = 0x0F };
kSENSE_KEY_NO_SENSENo sense data is present.
kSENSE_KEY_RECOVERED_ERRORA recovered error has occurred.
kSENSE_KEY_NOT_READYDevice server is not ready.
kSENSE_KEY_MEDIUM_ERRORDevice server detected a medium error.
kSENSE_KEY_HARDWARE_ERRORDevice server detected a hardware error.
kSENSE_KEY_ILLEGAL_REQUESTDevice server detected an illegal request.
kSENSE_KEY_UNIT_ATTENTIONDevice server indicates a unit attention condition.
kSENSE_KEY_DATA_PROTECTDevice server indicates a data protect condition.
kSENSE_KEY_BLANK_CHECKDevice server indicates a blank check condition.
kSENSE_KEY_VENDOR_SPECIFICDevice server indicates a vendor specific condition.
kSENSE_KEY_COPY_ABORTEDDevice server indicates a copy aborted condition.
kSENSE_KEY_ABORTED_COMMANDDevice server indicates an aborted command condition.
kSENSE_KEY_VOLUME_OVERFLOWDevice server indicates a volume overflow condition.
kSENSE_KEY_MISCOMPAREDevice server indicates a miscompare condition.
kSENSE_KEY_MaskMask to use when checking the SENSE_KEY field for the SENSE_KEY value.
Masks and values to determine the SENSE_KEY.
Sense Response Codes |
enum { kSENSE_RESPONSE_CODE_Current_Errors = 0x70, kSENSE_RESPONSE_CODE_Deferred_Errors = 0x71, kSENSE_RESPONSE_CODE_Mask = 0x7F };
kSENSE_RESPONSE_CODE_Current_ErrorsResponse code indicating current errors are reported.
kSENSE_RESPONSE_CODE_Deferred_ErrorsResponse code indicating deferred errors are reported.
kSENSE_RESPONSE_CODE_MaskMask to use when checking the VALID_RESPONSE_CODE field.
Masks and values to determine the Response Code.
Sense Valid |
enum { kSENSE_DATA_VALID = 0x80, kSENSE_NOT_DATA_VALID = 0x00, kSENSE_DATA_VALID_Mask = 0x80 };
kSENSE_DATA_VALIDSense data is valid.
kSENSE_NOT_DATA_VALIDSense data is not valid.
kSENSE_DATA_VALID_MaskValidity mask to use when checking the VALID_RESPONSE_CODE field.
Masks to use to determine if sense data is valid or not.
Last Updated: 2009-10-14