scsi: core: Define all additional sense codes and their qualifiers

Introduce the file include/scsi/scsi_sense.h to define all existing
additional sense codes and their combinations with additional sense code
qualifiers, according to the most current T10 list available at
https://www.t10.org/lists/asc-num.txt.

Additional sense codes (ASCs) are individually defined as an 8-bit value
with the ASC_ name prefix. The combination of all ASCs with T10 defined
possible code qualifiers are defined as 16-bit values without any name
prefix. The 16-bit value for ASCs with a zero ASCQ are defined together
with the ASC 8-code using the ASC() macro. For names that may potentially
create conflicts with other subsystems (e.g. WARNING or WRITE_ERROR), the
SSC_ prefix is added to the sense code name.

The sense key macro definitions in include/scsi/scsi_proto.h are also moved
into this new file and scsi_sense.h is included in scsi_proto.h.  The
helper function scsi_sense_code() is defined to facilitate generating a
16-bit sense code from the 8-bit ASC and ASCQ. The accessors
scsi_sense_code_asc() and scsi_sense_code_ascq() are defined for the
reverse operations, that is, to respectively extract an ASC and an ASCQ
from a 16-bit sense code.

Signed-off-by: Damien Le Moal <dlemoal@kernel.org>
Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>
Reviewed-by: Hannes Reinecke <hare@kernel.org>
Link: https://patch.msgid.link/20260908090308.1085097-2-dlemoal@kernel.org
Signed-off-by: Martin K. Petersen (Oracle) <mkp@kernel.org>
This commit is contained in:
Damien Le Moal authored and Martin K. Petersen (Oracle) committed 2026-09-16 10:42:45 -04:00
1 parent cee9395acd
commit 72c54bd0cb
2 files changed
+951 -19

No files matched your search

+1 -19
View File
@@ -12,6 +12,7 @@
#include <linux/build_bug.h>
#include <linux/types.h>
#include <scsi/scsi_sense.h>
/*
* SCSI opcodes
@@ -218,25 +219,6 @@ enum sam_status {
#define STATUS_MASK 0xfe
/*
* SENSE KEYS
*/
#define NO_SENSE 0x00
#define RECOVERED_ERROR 0x01
#define NOT_READY 0x02
#define MEDIUM_ERROR 0x03
#define HARDWARE_ERROR 0x04
#define ILLEGAL_REQUEST 0x05
#define UNIT_ATTENTION 0x06
#define DATA_PROTECT 0x07
#define BLANK_CHECK 0x08
#define VENDOR_SPECIFIC 0x09
#define COPY_ABORTED 0x0a
#define ABORTED_COMMAND 0x0b
#define VOLUME_OVERFLOW 0x0d
#define MISCOMPARE 0x0e
#define COMPLETED 0x0f
/*
* Additional Sense Codes (ASC).
*/
+950
View File
@@ -0,0 +1,950 @@
/* SPDX-License-Identifier: GPL-2.0 */
/*
* Definitions of SCSI sense keys, additional sense codes and additional sense
* code qualifiers.
*/
#ifndef _SCSI_SENSE_H_
#define _SCSI_SENSE_H_
#include <linux/types.h>
/*
* Sense keys.
* See: https://www.t10.org/lists/2sensekey.htm
*/
enum scsi_sense_key {
NO_SENSE = 0x00,
RECOVERED_ERROR = 0x01,
NOT_READY = 0x02,
MEDIUM_ERROR = 0x03,
HARDWARE_ERROR = 0x04,
ILLEGAL_REQUEST = 0x05,
UNIT_ATTENTION = 0x06,
DATA_PROTECT = 0x07,
BLANK_CHECK = 0x08,
VENDOR_SPECIFIC = 0x09,
COPY_ABORTED = 0x0a,
ABORTED_COMMAND = 0x0b,
VOLUME_OVERFLOW = 0x0d,
MISCOMPARE = 0x0e,
COMPLETED = 0x0f,
};
#define ASC_DEF(name) ASC_##name
#define ASC(name, code) \
ASC_DEF(name) = (code), \
name = ((code) << 8) | 0x00
/*
* SCSI additional sense codes and sense codes qualifiers.
* See: https://www.t10.org/lists/asc-num.txt
* Additional sense codes and their qualifiers are combined as a single value
* equal to (ASC << 8) | ASCQ.
*
* The definitions are sorted in increasing sense code value order with a naming
* following as close as possible the exact naming used in T10. To avoid
* excessively long code lines when using these macros, some long ASC/ASCQ
* combination names are shortened (E.g. LOGICAL_UNIT_xxx -> LU_xxx).
* Very generic ASC names that potentially may clash with other macros elsewhere
* are prefixed with "SSC_" (e.g. WARNING and WRITE_ERROR).
*/
enum scsi_sense_code {
ASC(NO_ADDITIONAL_SENSE_INFORMATION, 0x00),
FILEMARK_DETECTED = 0x0001,
END_OF_PARTITION_MEDIUM_DETECTED = 0x0002,
SETMARK_DETECTED = 0x0003,
BEGINNING_OF_PARTITION_MEDIUM_DETECTED = 0x0004,
END_OF_DATA_DETECTED = 0x0005,
IO_PROCESS_TERMINATED = 0x0006,
PROGRAMMABLE_EARLY_WARNING_DETECTED = 0x0007,
AUDIO_PLAY_OP_IN_PROGRESS = 0x0011,
AUDIO_PLAY_OP_PAUSED = 0x0012,
AUDIO_PLAY_OP_SUCCESSFULLY_COMPLETED = 0x0013,
AUDIO_PLAY_OP_STOPPED_DUE_TO_ERROR = 0x0014,
NO_CURRENT_AUDIO_STATUS_TO_RETURN = 0x0015,
OP_IN_PROGRESS = 0x0016,
CLEANING_REQUESTED = 0x0017,
ERASE_OP_IN_PROGRESS = 0x0018,
LOCATE_OP_IN_PROGRESS = 0x0019,
REWIND_OP_IN_PROGRESS = 0x001A,
SET_CAPACITY_OP_IN_PROGRESS = 0x001B,
VERIFY_OP_IN_PROGRESS = 0x001C,
ATA_PASS_THROUGH_INFORMATION_AVAILABLE = 0x001D,
CONFLICTING_SA_CREATION_REQUEST = 0x001E,
LU_TRANSITIONING_TO_ANOTHER_POWER_CONDITION = 0x001F,
EXTENDED_COPY_INFORMATION_AVAILABLE = 0x0020,
ATOMIC_COMMAND_ABORTED_DUE_TO_ACA = 0x0021,
DEFERRED_MICROCODE_IS_PENDING = 0x0022,
OVERLAPPING_ATOMIC_COMMAND_IN_PROGRESS = 0x0023,
ASC(NO_INDEX_SECTOR_SIGNAL, 0x01),
ASC(NO_SEEK_COMPLETE, 0x02),
ASC(PERIPHERAL_DEVICE_WRITE_FAULT, 0x03),
NO_WRITE_CURRENT = 0x0301,
EXCESSIVE_WRITE_ERRORS = 0x0302,
ASC(LU_NOT_READY, 0x04),
LU_IS_IN_PROCESS_OF_BECOMING_READY = 0x0401,
LU_NOT_READY_INITIALIZING_COMMAND_REQUIRED = 0x0402,
LU_NOT_READY_MANUAL_INTERVENTION_REQUIRED = 0x0403,
LU_NOT_READY_FORMAT_IN_PROGRESS = 0x0404,
LU_NOT_READY_REBUILD_IN_PROGRESS = 0x0405,
LU_NOT_READY_RECALCULATION_IN_PROGRESS = 0x0406,
LU_NOT_READY_OP_IN_PROGRESS = 0x0407,
LU_NOT_READY_LONG_WRITE_IN_PROGRESS = 0x0408,
LU_NOT_READY_SELFTEST_IN_PROGRESS = 0x0409,
LU_NOT_ACCESSIBLE_ASYMMETRIC_ACCESS_STATE_TRANSITION = 0x040A,
LU_NOT_ACCESSIBLE_TARGET_PORT_IN_STANDBY_STATE = 0x040B,
LU_NOT_ACCESSIBLE_TARGET_PORT_IN_UNAVAILABLE_STATE = 0x040C,
LU_NOT_READY_STRUCTURE_CHECK_REQUIRED = 0x040D,
LU_NOT_READY_SECURITY_SESSION_IN_PROGRESS = 0x040E,
LU_NOT_READY_AUXILIARY_MEMORY_NOT_ACCESSIBLE = 0x0410,
LU_NOT_READY_NOTIFY_REQUIRED = 0x0411,
LU_NOT_READY_OFFLINE = 0x0412,
LU_NOT_READY_SA_CREATION_IN_PROGRESS = 0x0413,
LU_NOT_READY_SPACE_ALLOCATION_IN_PROGRESS = 0x0414,
LU_NOT_READY_ROBOTICS_DISABLED = 0x0415,
LU_NOT_READY_CONFIG_REQUIRED = 0x0416,
LU_NOT_READY_CALIBRATION_REQUIRED = 0x0417,
LU_NOT_READY_A_DOOR_IS_OPEN = 0x0418,
LU_NOT_READY_OPERATING_IN_SEQUENTIAL_MODE = 0x0419,
LU_NOT_READY_START_STOP_UNIT_COMMAND_IN_PROGRESS = 0x041A,
LU_NOT_READY_SANITIZE_IN_PROGRESS = 0x041B,
LU_NOT_READY_ADDITIONAL_POWER_USE_NOT_YET_GRANTED = 0x041C,
LU_NOT_READY_CONFIG_IN_PROGRESS = 0x041D,
LU_NOT_READY_MICROCODE_ACTIVATION_REQUIRED = 0x041E,
LU_NOT_READY_MICROCODE_DOWNLOAD_REQUIRED = 0x041F,
LU_NOT_READY_LU_RESET_REQUIRED = 0x0420,
LU_NOT_READY_HARD_RESET_REQUIRED = 0x0421,
LU_NOT_READY_POWER_CYCLE_REQUIRED = 0x0422,
LU_NOT_READY_AFFILIATION_REQUIRED = 0x0423,
DEPOPULATION_IN_PROGRESS = 0x0424,
DEPOPULATION_RESTORATION_IN_PROGRESS = 0x0425,
ASC(LU_DOES_NOT_RESPOND_TO_SELECTION, 0x05),
ASC(NO_REFERENCE_POSITION_FOUND, 0x06),
ASC(MULTIPLE_PERIPHERAL_DEVICES_SELECTED, 0x07),
ASC(LU_COMMUNICATION_FAILURE, 0x08),
LU_COMMUNICATION_TIMEOUT = 0x0801,
LU_COMMUNICATION_PARITY_ERROR = 0x0802,
LU_COMMUNICATION_CRC_ERROR = 0x0803,
UNREACHABLE_COPY_TARGET = 0x0804,
ASC(TRACK_FOLLOWING_ERROR, 0x09),
TRACKING_SERVO_FAILURE = 0x0901,
FOCUS_SERVO_FAILURE = 0x0902,
SPINDLE_SERVO_FAILURE = 0x0903,
HEAD_SELECT_FAULT = 0x0904,
VIBRATION_INDUCED_TRACKING_ERROR = 0x0905,
ASC(ERROR_LOG_OVERFLOW, 0x0A),
ASC(SSC_WARNING, 0x0B),
WARNING_SPECIFIED_TEMPERATURE_EXCEEDED = 0x0B01,
WARNING_ENCLOSURE_DEGRADED = 0x0B02,
WARNING_BACKGROUND_SELFTEST_FAILED = 0x0B03,
WARNING_BACKGROUND_PRESCAN_DETECTED_MEDIUM_ERROR = 0x0B04,
WARNING_BACKGROUND_MEDIUM_SCAN_DETECTED_MEDIUM_ERROR = 0x0B05,
WARNING_NONVOLATILE_CACHE_NOW_VOLATILE = 0x0B06,
WARNING_DEGRADED_POWER_TO_NONVOLATILE_CACHE = 0x0B07,
WARNING_POWER_LOSS_EXPECTED = 0x0B08,
WARNING_DEVICE_STATISTICS_NOTIFICATION_ACTIVE = 0x0B09,
WARNING_HIGH_CRITICAL_TEMPERATURE_LIMIT_EXCEEDED = 0x0B0A,
WARNING_LOW_CRITICAL_TEMPERATURE_LIMIT_EXCEEDED = 0x0B0B,
WARNING_HIGH_OPERATING_TEMPERATURE_LIMIT_EXCEEDED = 0x0B0C,
WARNING_LOW_OPERATING_TEMPERATURE_LIMIT_EXCEEDED = 0x0B0D,
WARNING_HIGH_CRITICAL_HUMIDITY_LIMIT_EXCEEDED = 0x0B0E,
WARNING_LOW_CRITICAL_HUMIDITY_LIMIT_EXCEEDED = 0x0B0F,
WARNING_HIGH_OPERATING_HUMIDITY_LIMIT_EXCEEDED = 0x0B10,
WARNING_LOW_OPERATING_HUMIDITY_LIMIT_EXCEEDED = 0x0B11,
WARNING_MICROCODE_SECURITY_AT_RISK = 0x0B12,
WARNING_MICROCODE_DIGITAL_SIGNATURE_VALIDATION_FAILURE = 0x0B13,
WARNING_PHYSICAL_ELEMENT_STATUS_CHANGE = 0x0B14,
/* Defined as "WRITE ERROR" in T10. */
ASC(SSC_WRITE_ERROR, 0x0C),
WRITE_ERROR_RECOVERED_WITH_AUTO_REALLOCATION = 0x0C01,
WRITE_ERROR_AUTO_REALLOCATION_FAILED = 0x0C02,
WRITE_ERROR_RECOMMEND_REASSIGNMENT = 0x0C03,
COMPRESSION_CHECK_MISCOMPARE_ERROR = 0x0C04,
DATA_EXPANSION_OCCURRED_DURING_COMPRESSION = 0x0C05,
BLOCK_NOT_COMPRESSIBLE = 0x0C06,
WRITE_ERROR_RECOVERY_NEEDED = 0x0C07,
WRITE_ERROR_RECOVERY_FAILED = 0x0C08,
WRITE_ERROR_LOSS_OF_STREAMING = 0x0C09,
WRITE_ERROR_PADDING_BLOCKS_ADDED = 0x0C0A,
AUXILIARY_MEMORY_WRITE_ERROR = 0x0C0B,
WRITE_ERROR_UNEXPECTED_UNSOLICITED_DATA = 0x0C0C,
WRITE_ERROR_NOT_ENOUGH_UNSOLICITED_DATA = 0x0C0D,
MULTIPLE_WRITE_ERRORS = 0x0C0E,
DEFECTS_IN_ERROR_WINDOW = 0x0C0F,
INCOMPLETE_MULTIPLE_ATOMIC_WRITE_OPERATIONS = 0x0C10,
WRITE_ERROR_RECOVERY_SCAN_NEEDED = 0x0C11,
WRITE_ERROR_INSUFFICIENT_ZONE_RESOURCES = 0x0C12,
ASC(ERROR_DETECTED_BY_THIRD_PARTY_TEMPORARY_INITIATOR, 0x0D),
THIRD_PARTY_DEVICE_FAILURE = 0x0D01,
COPY_TARGET_DEVICE_NOT_REACHABLE = 0x0D02,
INCORRECT_COPY_TARGET_DEVICE_TYPE = 0x0D03,
COPY_TARGET_DEVICE_DATA_UNDERRUN = 0x0D04,
COPY_TARGET_DEVICE_DATA_OVERRUN = 0x0D05,
ASC(INVALID_INFORMATION_UNIT, 0x0E),
INFORMATION_UNIT_TOO_SHORT = 0x0E01,
INFORMATION_UNIT_TOO_LONG = 0x0E02,
INVALID_FIELD_IN_COMMAND_INFORMATION_UNIT = 0x0E03,
ASC(ID_CRC_OR_ECC_ERROR, 0x10),
LOGICAL_BLOCK_GUARD_CHECK_FAILED = 0x1001,
LOGICAL_BLOCK_APPLICATION_TAG_CHECK_FAILED = 0x1002,
LOGICAL_BLOCK_REFERENCE_TAG_CHECK_FAILED = 0x1003,
LOGICAL_BLOCK_PROTECTION_ERROR_ON_RECOVER_BUFFERED_DATA = 0x1004,
LOGICAL_BLOCK_PROTECTION_METHOD_ERROR = 0x1005,
ASC(UNRECOVERED_READ_ERROR, 0x11),
READ_RETRIES_EXHAUSTED = 0x1101,
ERROR_TOO_LONG_TO_CORRECT = 0x1102,
MULTIPLE_READ_ERRORS = 0x1103,
UNRECOVERED_READ_ERROR_AUTO_REALLOCATE_FAILED = 0x1104,
LEC_UNCORRECTABLE_ERROR = 0x1105,
CIRC_UNRECOVERED_ERROR = 0x1106,
DATA_RESYNCHRONIZATION_ERROR = 0x1107,
INCOMPLETE_BLOCK_READ = 0x1108,
NO_GAP_FOUND = 0x1109,
MISCORRECTED_ERROR = 0x110A,
UNRECOVERED_READ_ERROR_RECOMMEND_REASSIGNMENT = 0x110B,
UNRECOVERED_READ_ERROR_RECOMMEND_REWRITE_THE_DATA = 0x110C,
DECOMPRESSION_CRC_ERROR = 0x110D,
CANNOT_DECOMPRESS_USING_DECLARED_ALGORITHM = 0x110E,
ERROR_READING_UPC_EAN_NUMBER = 0x110F,
ERROR_READING_ISRC_NUMBER = 0x1110,
READ_ERROR_LOSS_OF_STREAMING = 0x1111,
AUXILIARY_MEMORY_READ_ERROR = 0x1112,
READ_ERROR_FAILED_RETRANSMISSION_REQUEST = 0x1113,
READ_ERROR_LBA_MARKED_BAD_BY_APPLICATION_CLIENT = 0x1114,
WRITE_AFTER_SANITIZE_REQUIRED = 0x1115,
ASC(ADDRESS_MARK_NOT_FOUND_FOR_ID_FIELD, 0x12),
ASC(ADDRESS_MARK_NOT_FOUND_FOR_DATA_FIELD, 0x13),
ASC(RECORDED_ENTITY_NOT_FOUND, 0x14),
RECORD_NOT_FOUND = 0x1401,
FILEMARK_OR_SETMARK_NOT_FOUND = 0x1402,
END_OF_DATA_NOT_FOUND = 0x1403,
BLOCK_SEQUENCE_ERROR = 0x1404,
RECORD_NOT_FOUND_RECOMMEND_REASSIGNMENT = 0x1405,
RECORD_NOT_FOUND_DATA_AUTO_REALLOCATED = 0x1406,
LOCATE_OPERATION_FAILURE = 0x1407,
ASC(RANDOM_POSITIONING_ERROR, 0x15),
MECHANICAL_POSITIONING_ERROR = 0x1501,
POSITIONING_ERROR_DETECTED_BY_READ_OF_MEDIUM = 0x1502,
ASC(DATA_SYNCHRONIZATION_MARK_ERROR, 0x16),
DATA_SYNC_ERROR_DATA_REWRITTEN = 0x1601,
DATA_SYNC_ERROR_RECOMMEND_REWRITE = 0x1602,
DATA_SYNC_ERROR_DATA_AUTO_REALLOCATED = 0x1603,
DATA_SYNC_ERROR_RECOMMEND_REASSIGNMENT = 0x1604,
ASC(RECOVERED_DATA_WITH_NO_ERROR_CORRECTION_APPLIED, 0x17),
RECOVERED_DATA_WITH_RETRIES = 0x1701,
RECOVERED_DATA_WITH_POSITIVE_HEAD_OFFSET = 0x1702,
RECOVERED_DATA_WITH_NEGATIVE_HEAD_OFFSET = 0x1703,
RECOVERED_DATA_WITH_RETRIES_AND_OR_CIRC_APPLIED = 0x1704,
RECOVERED_DATA_USING_PREVIOUS_SECTOR_ID = 0x1705,
RECOVERED_DATA_WITHOUT_ECC_DATA_AUTO_REALLOCATED = 0x1706,
RECOVERED_DATA_WITHOUT_ECC_RECOMMEND_REASSIGNMENT = 0x1707,
RECOVERED_DATA_WITHOUT_ECC_RECOMMEND_REWRITE = 0x1708,
RECOVERED_DATA_WITHOUT_ECC_DATA_REWRITTEN = 0x1709,
ASC(RECOVERED_DATA_WITH_ERROR_CORRECTION_APPLIED, 0x18),
RECOVERED_DATA_WITH_ERROR_CORRECTION_RETRIES_APPLIED = 0x1801,
RECOVERED_DATA_DATA_AUTO_REALLOCATED = 0x1802,
RECOVERED_DATA_WITH_CIRC = 0x1803,
RECOVERED_DATA_WITH_LEC = 0x1804,
RECOVERED_DATA_RECOMMEND_REASSIGNMENT = 0x1805,
RECOVERED_DATA_RECOMMEND_REWRITE = 0x1806,
RECOVERED_DATA_WITH_ECC_DATA_REWRITTEN = 0x1807,
RECOVERED_DATA_WITH_LINKING = 0x1808,
ASC(DEFECT_LIST_ERROR, 0x19),
DEFECT_LIST_NOT_AVAILABLE = 0x1901,
DEFECT_LIST_ERROR_IN_PRIMARY_LIST = 0x1902,
DEFECT_LIST_ERROR_IN_GROWN_LIST = 0x1903,
ASC(PARAMETER_LIST_LENGTH_ERROR, 0x1A),
ASC(SYNCHRONOUS_DATA_TRANSFER_ERROR, 0x1B),
ASC(DEFECT_LIST_NOT_FOUND, 0x1C),
PRIMARY_DEFECT_LIST_NOT_FOUND = 0x1C01,
GROWN_DEFECT_LIST_NOT_FOUND = 0x1C02,
ASC(MISCOMPARE_DURING_VERIFY_OPERATION, 0x1D),
MISCOMPARE_VERIFY_OF_UNMAPPED_LBA = 0x1D01,
ASC(RECOVERED_ID_WITH_ECC_CORRECTION, 0x1E),
ASC(PARTIAL_DEFECT_LIST_TRANSFER, 0x1F),
ASC(INVALID_COMMAND_OP_CODE, 0x20),
ACCESS_DENIED_INITIATOR_PENDING_ENROLLED = 0x2001,
ACCESS_DENIED_NO_ACCESS_RIGHTS = 0x2002,
ACCESS_DENIED_INVALID_MGMT_ID_KEY = 0x2003,
ILLEGAL_COMMAND_WHILE_IN_WRITE_CAPABLE_STATE = 0x2004,
ILLEGAL_COMMAND_WHILE_IN_EXPLICIT_ADDRESS_MODE = 0x2006,
ILLEGAL_COMMAND_WHILE_IN_IMPLICIT_ADDRESS_MODE = 0x2007,
ACCESS_DENIED_ENROLLMENT_CONFLICT = 0x2008,
ACCESS_DENIED_INVALID_LU_IDENTIFIER = 0x2009,
ACCESS_DENIED_INVALID_PROXY_TOKEN = 0x200A,
ACCESS_DENIED_ACL_LUN_CONFLICT = 0x200B,
ILLEGAL_COMMAND_WHEN_NOT_IN_APPEND_ONLY_MODE = 0x200C,
NOT_AN_ADMINISTRATIVE_LOGICAL_UNIT = 0x200D,
NOT_A_SUBSIDIARY_LOGICAL_UNIT = 0x200E,
NOT_A_CONGLOMERATE_LOGICAL_UNIT = 0x200F,
ASC(LOGICAL_BLOCK_ADDRESS_OUT_OF_RANGE, 0x21),
INVALID_ELEMENT_ADDRESS = 0x2101,
INVALID_ADDRESS_FOR_WRITE = 0x2102,
INVALID_WRITE_CROSSING_LAYER_JUMP = 0x2103,
UNALIGNED_WRITE_COMMAND = 0x2104,
WRITE_BOUNDARY_VIOLATION = 0x2105,
ATTEMPT_TO_READ_INVALID_DATA = 0x2106,
READ_BOUNDARY_VIOLATION = 0x2107,
MISALIGNED_WRITE_COMMAND = 0x2108,
ATTEMPT_TO_ACCESS_GAP_ZONE = 0x2109,
ASC(ILLEGAL_FUNCTION, 0x22),
ASC(INVALID_TOKEN_OP, 0x23),
INVALID_TOKEN_OP_UNSUPPORTED_TOKEN_TYPE = 0x2301,
INVALID_TOKEN_OP_REMOTE_TOKEN_USAGE_NOT_SUPPORTED = 0x2302,
INVALID_TOKEN_OP_REMOTE_ROD_TOKEN_CREATION_NOT_SUPPORTED = 0x2303,
INVALID_TOKEN_OP_TOKEN_UNKNOWN = 0x2304,
INVALID_TOKEN_OP_TOKEN_CORRUPT = 0x2305,
INVALID_TOKEN_OP_TOKEN_REVOKED = 0x2306,
INVALID_TOKEN_OP_TOKEN_EXPIRED = 0x2307,
INVALID_TOKEN_OP_TOKEN_CANCELLED = 0x2308,
INVALID_TOKEN_OP_TOKEN_DELETED = 0x2309,
INVALID_TOKEN_OP_INVALID_TOKEN_LENGTH = 0x230A,
ASC(INVALID_FIELD_IN_CDB, 0x24),
CDB_DECRYPTION_ERROR = 0x2401,
SECURITY_AUDIT_VALUE_FROZEN = 0x2404,
SECURITY_WORKING_KEY_FROZEN = 0x2405,
NONCE_NOT_UNIQUE = 0x2406,
NONCE_TIMESTAMP_OUT_OF_RANGE = 0x2407,
INVALID_XCDB = 0x2408,
INVALID_FAST_FORMAT = 0x2409,
ASC(LU_NOT_SUPPORTED, 0x25),
ASC(INVALID_FIELD_IN_PARAMETER_LIST, 0x26),
PARAMETER_NOT_SUPPORTED = 0x2601,
PARAMETER_VALUE_INVALID = 0x2602,
THRESHOLD_PARAMETERS_NOT_SUPPORTED = 0x2603,
INVALID_RELEASE_OF_PERSISTENT_RESERVATION = 0x2604,
DATA_DECRYPTION_ERROR = 0x2605,
TOO_MANY_TARGET_DESCRIPTORS = 0x2606,
UNSUPPORTED_TARGET_DESCRIPTOR_TYPE_CODE = 0x2607,
TOO_MANY_SEGMENT_DESCRIPTORS = 0x2608,
UNSUPPORTED_SEGMENT_DESCRIPTOR_TYPE_CODE = 0x2609,
UNEXPECTED_INEXACT_SEGMENT = 0x260A,
INLINE_DATA_LENGTH_EXCEEDED = 0x260B,
INVALID_OP_FOR_COPY_SOURCE_OR_DESTINATION = 0x260C,
COPY_SEGMENT_GRANULARITY_VIOLATION = 0x260D,
INVALID_PARAMETER_WHILE_PORT_IS_ENABLED = 0x260E,
INVALID_DATA_OUT_BUFFER_INTEGRITY_CHECK_VALUE = 0x260F,
DATA_DECRYPTION_KEY_FAIL_LIMIT_REACHED = 0x2610,
INCOMPLETE_KEY_ASSOCIATED_DATA_SET = 0x2611,
VENDOR_SPECIFIC_KEY_REFERENCE_NOT_FOUND = 0x2612,
APPLICATION_TAG_MODE_PAGE_IS_INVALID = 0x2613,
TAPE_STREAM_MIRRORING_PREVENTED = 0x2614,
COPY_SOURCE_OR_COPY_DESTINATION_NOT_AUTHORIZED = 0x2615,
FAST_COPY_NOT_POSSIBLE = 0x2616,
ASC(WRITE_PROTECTED, 0x27),
HW_WRITE_PROTECTED = 0x2701,
LU_SOFTWARE_WRITE_PROTECTED = 0x2702,
ASSOCIATED_WRITE_PROTECT = 0x2703,
PERSISTENT_WRITE_PROTECT = 0x2704,
PERMANENT_WRITE_PROTECT = 0x2705,
CONDITIONAL_WRITE_PROTECT = 0x2706,
SPACE_ALLOCATION_FAILED_WRITE_PROTECT = 0x2707,
ZONE_IS_READ_ONLY = 0x2708,
ASC(NOT_READY_TO_READY_CHANGE_MEDIUM_MAY_HAVE_CHANGED, 0x28),
IMPORT_OR_EXPORT_ELEMENT_ACCESSED = 0x2801,
FORMAT_LAYER_MAY_HAVE_CHANGED = 0x2802,
IMPORT_EXPORT_ELEMENT_ACCESSED_MEDIUM_CHANGED = 0x2803,
ASC(POWER_ON_RESET_OR_BUS_DEVICE_RESET_OCCURRED, 0x29),
POWER_ON_OCCURRED = 0x2901,
SCSI_BUS_RESET_OCCURRED = 0x2902,
BUS_DEVICE_RESET_FUNCTION_OCCURRED = 0x2903,
DEVICE_INTERNAL_RESET = 0x2904,
TRANSCEIVER_MODE_CHANGED_TO_SINGLE_ENDED = 0x2905,
TRANSCEIVER_MODE_CHANGED_TO_LVD = 0x2906,
I_T_NEXUS_LOSS_OCCURRED = 0x2907,
ASC(PARAMETERS_CHANGED, 0x2A),
MODE_PARAMETERS_CHANGED = 0x2A01,
LOG_PARAMETERS_CHANGED = 0x2A02,
RESERVATIONS_PREEMPTED = 0x2A03,
RESERVATIONS_RELEASED = 0x2A04,
REGISTRATIONS_PREEMPTED = 0x2A05,
ASYMMETRIC_ACCESS_STATE_CHANGED = 0x2A06,
IMPLICIT_ASYMMETRIC_ACCESS_STATE_TRANSITION_FAILED = 0x2A07,
PRIORITY_CHANGED = 0x2A08,
CAPACITY_DATA_HAS_CHANGED = 0x2A09,
ERROR_HISTORY_I_T_NEXUS_CLEARED = 0x2A0A,
ERROR_HISTORY_SNAPSHOT_RELEASED = 0x2A0B,
ERROR_RECOVERY_ATTRIBUTES_HAVE_CHANGED = 0x2A0C,
DATA_ENCRYPTION_CAPABILITIES_CHANGED = 0x2A0D,
TIMESTAMP_CHANGED = 0x2A10,
DATA_ENCRYPTION_PARAMS_CHANGED_BY_ANOTHER_I_T_NEXUS = 0x2A11,
DATA_ENCRYPTION_PARAMS_CHANGED_BY_VENDOR_SPECIFIC_EVENT = 0x2A12,
DATA_ENCRYPTION_KEY_INSTANCE_COUNTER_HAS_CHANGED = 0x2A13,
SA_CREATION_CAPABILITIES_DATA_HAS_CHANGED = 0x2A14,
MEDIUM_REMOVAL_PREVENTION_PREEMPTED = 0x2A15,
ZONE_RESET_WRITE_POINTER_RECOMMENDED = 0x2A16,
ASC(COPY_CANNOT_EXECUTE_SINCE_HOST_CANNOT_DISCONNECT, 0x2B),
ASC(COMMAND_SEQUENCE_ERROR, 0x2C),
TOO_MANY_WINDOWS_SPECIFIED = 0x2C01,
INVALID_COMBINATION_OF_WINDOWS_SPECIFIED = 0x2C02,
CURRENT_PROGRAM_AREA_IS_NOT_EMPTY = 0x2C03,
CURRENT_PROGRAM_AREA_IS_EMPTY = 0x2C04,
ILLEGAL_POWER_CONDITION_REQUEST = 0x2C05,
PERSISTENT_PREVENT_CONFLICT = 0x2C06,
PREVIOUS_BUSY_STATUS = 0x2C07,
PREVIOUS_TASK_SET_FULL_STATUS = 0x2C08,
PREVIOUS_RESERVATION_CONFLICT_STATUS = 0x2C09,
PARTITION_OR_COLLECTION_CONTAINS_USER_OBJECTS = 0x2C0A,
NOT_RESERVED = 0x2C0B,
ORWRITE_GENERATION_DOES_NOT_MATCH = 0x2C0C,
RESET_WRITE_POINTER_NOT_ALLOWED = 0x2C0D,
ZONE_IS_OFFLINE = 0x2C0E,
STREAM_NOT_OPEN = 0x2C0F,
UNWRITTEN_DATA_IN_ZONE = 0x2C10,
DESCRIPTOR_FORMAT_SENSE_DATA_REQUIRED = 0x2C11,
ZONE_IS_INACTIVE = 0x2C12,
WELL_KNOWN_LU_ACCESS_REQUIRED = 0x2C13,
ASC(OVERWRITE_ERROR_ON_UPDATE_IN_PLACE, 0x2D),
ASC(INSUFFICIENT_TIME_FOR_OPERATION, 0x2E),
COMMAND_TIMEOUT_BEFORE_PROCESSING = 0x2E01,
COMMAND_TIMEOUT_DURING_PROCESSING = 0x2E02,
COMMAND_TIMEOUT_DURING_PROCESSING_DUE_TO_ERROR_RECOVERY = 0x2E03,
ASC(COMMANDS_CLEARED_BY_ANOTHER_INITIATOR, 0x2F),
COMMANDS_CLEARED_BY_POWER_LOSS_NOTIFICATION = 0x2F01,
COMMANDS_CLEARED_BY_DEVICE_SERVER = 0x2F02,
SOME_COMMANDS_CLEARED_BY_QUEUING_LAYER_EVENT = 0x2F03,
ASC(INCOMPATIBLE_MEDIUM_INSTALLED, 0x30),
CANNOT_READ_MEDIUM_UNKNOWN_FORMAT = 0x3001,
CANNOT_READ_MEDIUM_INCOMPATIBLE_FORMAT = 0x3002,
CLEANING_CARTRIDGE_INSTALLED = 0x3003,
CANNOT_WRITE_MEDIUM_UNKNOWN_FORMAT = 0x3004,
CANNOT_WRITE_MEDIUM_INCOMPATIBLE_FORMAT = 0x3005,
CANNOT_FORMAT_MEDIUM_INCOMPATIBLE_MEDIUM = 0x3006,
CLEANING_FAILURE = 0x3007,
CANNOT_WRITE_APPLICATION_CODE_MISMATCH = 0x3008,
CURRENT_SESSION_NOT_FIXATED_FOR_APPEND = 0x3009,
CLEANING_REQUEST_REJECTED = 0x300A,
WORM_MEDIUM_OVERWRITE_ATTEMPTED = 0x300C,
WORM_MEDIUM_INTEGRITY_CHECK = 0x300D,
MEDIUM_NOT_FORMATTED = 0x3010,
INCOMPATIBLE_VOLUME_TYPE = 0x3011,
INCOMPATIBLE_VOLUME_QUALIFIER = 0x3012,
CLEANING_VOLUME_EXPIRED = 0x3013,
ASC(MEDIUM_FORMAT_CORRUPTED, 0x31),
FORMAT_COMMAND_FAILED = 0x3101,
ZONED_FORMATTING_FAILED_DUE_TO_SPARE_LINKING = 0x3102,
SANITIZE_COMMAND_FAILED = 0x3103,
DEPOPULATION_FAILED = 0x3104,
DEPOPULATION_RESTORATION_FAILED = 0x3105,
ASC(NO_DEFECT_SPARE_LOCATION_AVAILABLE, 0x32),
DEFECT_LIST_UPDATE_FAILURE = 0x3201,
ASC(TAPE_LENGTH_ERROR, 0x33),
ASC(ENCLOSURE_FAILURE, 0x34),
ASC(ENCLOSURE_SERVICES_FAILURE, 0x35),
UNSUPPORTED_ENCLOSURE_FUNCTION = 0x3501,
ENCLOSURE_SERVICES_UNAVAILABLE = 0x3502,
ENCLOSURE_SERVICES_TRANSFER_FAILURE = 0x3503,
ENCLOSURE_SERVICES_TRANSFER_REFUSED = 0x3504,
ENCLOSURE_SERVICES_CHECKSUM_ERROR = 0x3505,
ASC(RIBBON_INK_OR_TONER_FAILURE, 0x36),
ASC(ROUNDED_PARAMETER, 0x37),
ASC(EVENT_STATUS_NOTIFICATION, 0x38),
ESN_POWER_MANAGEMENT_CLASS_EVENT = 0x3802,
ESN_MEDIA_CLASS_EVENT = 0x3804,
ESN_DEVICE_BUSY_CLASS_EVENT = 0x3806,
THIN_PROVISIONING_SOFT_THRESHOLD_REACHED = 0x3807,
DEPOPULATION_INTERRUPTED = 0x3808,
DEPOPULATION_RESTORATION_INTERRUPTED = 0x3809,
ASC(SAVING_PARAMETERS_NOT_SUPPORTED, 0x39),
ASC(MEDIUM_NOT_PRESENT, 0x3A),
MEDIUM_NOT_PRESENT_TRAY_CLOSED = 0x3A01,
MEDIUM_NOT_PRESENT_TRAY_OPEN = 0x3A02,
MEDIUM_NOT_PRESENT_LOADABLE = 0x3A03,
MEDIUM_NOT_PRESENT_MEDIUM_AUXILIARY_MEMORY_ACCESSIBLE = 0x3A04,
ASC(SEQUENTIAL_POSITIONING_ERROR, 0x3B),
TAPE_POSITION_ERROR_AT_BEGINNING_OF_MEDIUM = 0x3B01,
TAPE_POSITION_ERROR_AT_END_OF_MEDIUM = 0x3B02,
TAPE_OR_ELECTRONIC_VERTICAL_FORMS_UNIT_NOT_READY = 0x3B03,
SLEW_FAILURE = 0x3B04,
PAPER_JAM = 0x3B05,
FAILED_TO_SENSE_TOP_OF_FORM = 0x3B06,
FAILED_TO_SENSE_BOTTOM_OF_FORM = 0x3B07,
REPOSITION_ERROR = 0x3B08,
READ_PAST_END_OF_MEDIUM = 0x3B09,
READ_PAST_BEGINNING_OF_MEDIUM = 0x3B0A,
POSITION_PAST_END_OF_MEDIUM = 0x3B0B,
POSITION_PAST_BEGINNING_OF_MEDIUM = 0x3B0C,
MEDIUM_DESTINATION_ELEMENT_FULL = 0x3B0D,
MEDIUM_SOURCE_ELEMENT_EMPTY = 0x3B0E,
END_OF_MEDIUM_REACHED = 0x3B0F,
MEDIUM_MAGAZINE_NOT_ACCESSIBLE = 0x3B11,
MEDIUM_MAGAZINE_REMOVED = 0x3B12,
MEDIUM_MAGAZINE_INSERTED = 0x3B13,
MEDIUM_MAGAZINE_LOCKED = 0x3B14,
MEDIUM_MAGAZINE_UNLOCKED = 0x3B15,
MECHANICAL_POSITIONING_OR_CHANGER_ERROR = 0x3B16,
READ_PAST_END_OF_USER_OBJECT = 0x3B17,
ELEMENT_DISABLED = 0x3B18,
ELEMENT_ENABLED = 0x3B19,
DATA_TRANSFER_DEVICE_REMOVED = 0x3B1A,
DATA_TRANSFER_DEVICE_INSERTED = 0x3B1B,
TOO_MANY_LOGICAL_OBJECTS_ON_PARTITION_TO_SUPPORT_OP = 0x3B1C,
ELEMENT_STATIC_INFORMATION_CHANGED = 0x3B20,
ASC(INVALID_BITS_IN_IDENTIFY_MESSAGE, 0x3D),
ASC(LU_HAS_NOT_SELF_CONFIGURED_YET, 0x3E),
LU_FAILURE = 0x3E01,
TIMEOUT_ON_LOGICAL_UNIT = 0x3E02,
LU_FAILED_SELF_TEST = 0x3E03,
LU_UNABLE_TO_UPDATE_SELFTEST_LOG = 0x3E04,
ASC(TARGET_OPERATING_CONDITIONS_HAVE_CHANGED, 0x3F),
MICROCODE_HAS_BEEN_CHANGED = 0x3F01,
CHANGED_OPERATING_DEFINITION = 0x3F02,
INQUIRY_DATA_HAS_CHANGED = 0x3F03,
COMPONENT_DEVICE_ATTACHED = 0x3F04,
DEVICE_IDENTIFIER_CHANGED = 0x3F05,
REDUNDANCY_GROUP_CREATED_OR_MODIFIED = 0x3F06,
REDUNDANCY_GROUP_DELETED = 0x3F07,
SPARE_CREATED_OR_MODIFIED = 0x3F08,
SPARE_DELETED = 0x3F09,
VOLUME_SET_CREATED_OR_MODIFIED = 0x3F0A,
VOLUME_SET_DELETED = 0x3F0B,
VOLUME_SET_DEASSIGNED = 0x3F0C,
VOLUME_SET_REASSIGNED = 0x3F0D,
REPORTED_LUNS_DATA_HAS_CHANGED = 0x3F0E,
ECHO_BUFFER_OVERWRITTEN = 0x3F0F,
MEDIUM_LOADABLE = 0x3F10,
MEDIUM_AUXILIARY_MEMORY_ACCESSIBLE = 0x3F11,
iSCSI_IP_ADDRESS_ADDED = 0x3F12,
iSCSI_IP_ADDRESS_REMOVED = 0x3F13,
iSCSI_IP_ADDRESS_CHANGED = 0x3F14,
INSPECT_REFERRALS_SENSE_DESCRIPTORS = 0x3F15,
MICROCODE_HAS_BEEN_CHANGED_WITHOUT_RESET = 0x3F16,
ZONE_TRANSITION_TO_FULL = 0x3F17,
BIND_COMPLETED = 0x3F18,
BIND_REDIRECTED = 0x3F19,
SUBSIDIARY_BINDING_CHANGED = 0x3F1A,
ASC(RAM_FAILURE, 0x40),
/* DIAGNOSTIC_FAILURE_ON_COMPONENT_NN = 0x40NN */
ASC(DATA_PATH_FAILURE, 0x41),
ASC(POWER_ON_OR_SELFTEST_FAILURE, 0x42),
ASC(MESSAGE_ERROR, 0x43),
ASC(INTERNAL_TARGET_FAILURE, 0x44),
PERSISTENT_RESERVATION_INFORMATION_LOST = 0x4401,
ATA_DEVICE_FAILED_SET_FEATURES = 0x4471,
ASC(SELECT_OR_RESELECT_FAILURE, 0x45),
ASC(UNSUCCESSFUL_SOFT_RESET, 0x46),
ASC(SCSI_PARITY_ERROR, 0x47),
DATA_PHASE_CRC_ERROR_DETECTED = 0x4701,
SCSI_PARITY_ERROR_DETECTED_DURING_ST_DATA_PHASE = 0x4702,
INFORMATION_UNIT_iuCRC_ERROR_DETECTED = 0x4703,
ASYNCHRONOUS_INFORMATION_PROTECTION_ERROR_DETECTED = 0x4704,
PROTOCOL_SERVICE_CRC_ERROR = 0x4705,
PHY_TEST_FUNCTION_IN_PROGRESS = 0x4706,
SOME_COMMANDS_CLEARED_BY_ISCSI_PROTOCOL_EVENT = 0x477F,
ASC(INITIATOR_DETECTED_ERROR_MESSAGE_RECEIVED, 0x48),
ASC(INVALID_MESSAGE_ERROR, 0x49),
ASC(COMMAND_PHASE_ERROR, 0x4A),
ASC(DATA_PHASE_ERROR, 0x4B),
INVALID_TARGET_PORT_TRANSFER_TAG_RECEIVED = 0x4B01,
TOO_MUCH_WRITE_DATA = 0x4B02,
ACK_NAK_TIMEOUT = 0x4B03,
NAK_RECEIVED = 0x4B04,
DATA_OFFSET_ERROR = 0x4B05,
INITIATOR_RESPONSE_TIMEOUT = 0x4B06,
CONNECTION_LOST = 0x4B07,
DATA_IN_BUFFER_OVERFLOW_BUFFER_SIZE = 0x4B08,
DATA_IN_BUFFER_OVERFLOW_BUFFER_DESCRIPTOR_AREA = 0x4B09,
DATA_IN_BUFFER_ERROR = 0x4B0A,
DATA_OUT_BUFFER_OVERFLOW_BUFFER_SIZE = 0x4B0B,
DATA_OUT_BUFFER_OVERFLOW_BUFFER_DESCRIPTOR_AREA = 0x4B0C,
DATA_OUT_BUFFER_ERROR = 0x4B0D,
PCIE_FABRIC_ERROR = 0x4B0E,
PCIE_COMPLETION_TIMEOUT = 0x4B0F,
PCIE_COMPLETER_ABORT = 0x4B10,
PCIE_POISONED_TLP_RECEIVED = 0x4B11,
PCIE_ECRC_CHECK_FAILED = 0x4B12,
PCIE_UNSUPPORTED_REQUEST = 0x4B13,
PCIE_ACS_VIOLATION = 0x4B14,
PCIE_TLP_PREFIX_BLOCKED = 0x4B15,
ASC(LU_FAILED_SELF_CONFIGURATION, 0x4C),
ASC(TAGGED_OVERLAPPED_COMMANDS, 0x4D),
ASC(OVERLAPPED_COMMANDS_ATTEMPTED, 0x4E),
ASC(WRITE_APPEND_ERROR, 0x50),
WRITE_APPEND_POSITION_ERROR = 0x5001,
POSITION_ERROR_RELATED_TO_TIMING = 0x5002,
ASC(ERASE_FAILURE, 0x51),
ERASE_FAILURE_INCOMPLETE_ERASE_OP_DETECTED = 0x5101,
ASC(CARTRIDGE_FAULT, 0x52),
ASC(MEDIA_LOAD_OR_EJECT_FAILED, 0x53),
UNLOAD_TAPE_FAILURE = 0x5301,
MEDIUM_REMOVAL_PREVENTED = 0x5302,
MEDIUM_REMOVAL_PREVENTED_BY_DATA_TRANSFER_ELEMENT = 0x5303,
MEDIUM_THREAD_OR_UNTHREAD_FAILURE = 0x5304,
VOLUME_IDENTIFIER_INVALID = 0x5305,
VOLUME_IDENTIFIER_MISSING = 0x5306,
DUPLICATE_VOLUME_IDENTIFIER = 0x5307,
ELEMENT_STATUS_UNKNOWN = 0x5308,
DATA_TRANSFER_DEVICE_ERR_LOAD_FAILED = 0x5309,
DATA_TRANSFER_DEVICE_ERR_UNLOAD_FAILED = 0x530A,
DATA_TRANSFER_DEVICE_ERR_UNLOAD_MISSING = 0x530B,
DATA_TRANSFER_DEVICE_ERR_EJECT_FAILED = 0x530C,
DATA_TRANSFER_DEVICE_ERR_LIBRARY_COMMUNICATION_FAILED = 0x530D,
ASC(SCSI_TO_HOST_SYSTEM_INTERFACE_FAILURE, 0x54),
ASC(SYSTEM_RESOURCE_FAILURE, 0x55),
SYSTEM_BUFFER_FULL = 0x5501,
INSUFFICIENT_RESERVATION_RESOURCES = 0x5502,
INSUFFICIENT_RESOURCES = 0x5503,
INSUFFICIENT_REGISTRATION_RESOURCES = 0x5504,
INSUFFICIENT_ACCESS_CONTROL_RESOURCES = 0x5505,
AUXILIARY_MEMORY_OUT_OF_SPACE = 0x5506,
QUOTA_ERROR = 0x5507,
MAXIMUM_NUMBER_OF_SUPPLEMENTAL_DECRYPTION_KEYS_EXCEEDED = 0x5508,
MEDIUM_AUXILIARY_MEMORY_NOT_ACCESSIBLE = 0x5509,
DATA_CURRENTLY_UNAVAILABLE = 0x550A,
INSUFFICIENT_POWER_FOR_OPERATION = 0x550B,
INSUFFICIENT_RESOURCES_TO_CREATE_ROD = 0x550C,
INSUFFICIENT_RESOURCES_TO_CREATE_ROD_TOKEN = 0x550D,
INSUFFICIENT_ZONE_RESOURCES = 0x550E,
INSUFFICIENT_ZONE_RESOURCES_TO_COMPLETE_WRITE = 0x550F,
MAXIMUM_NUMBER_OF_STREAMS_OPEN = 0x5510,
INSUFFICIENT_RESOURCES_TO_BIND = 0x5511,
ASC(UNABLE_TO_RECOVER_TABLE_OF_CONTENTS, 0x57),
ASC(GENERATION_DOES_NOT_EXIST, 0x58),
ASC(UPDATED_BLOCK_READ, 0x59),
ASC(OPERATOR_REQUEST_OR_STATE_CHANGE_INPUT, 0x5A),
OPERATOR_MEDIUM_REMOVAL_REQUEST = 0x5A01,
OPERATOR_SELECTED_WRITE_PROTECT = 0x5A02,
OPERATOR_SELECTED_WRITE_PERMIT = 0x5A03,
ASC(LOG_EXCEPTION, 0x5B),
THRESHOLD_CONDITION_MET = 0x5B01,
LOG_COUNTER_AT_MAXIMUM = 0x5B02,
LOG_LIST_CODES_EXHAUSTED = 0x5B03,
ASC(RPL_STATUS_CHANGE, 0x5C),
SPINDLES_SYNCHRONIZED = 0x5C01,
SPINDLES_NOT_SYNCHRONIZED = 0x5C02,
ASC(FAILURE_PREDICTION_THRESHOLD_EXCEEDED, 0x5D),
MEDIA_FAILURE_PREDICTION_THRESHOLD_EXCEEDED = 0x5D01,
LU_FAILURE_PREDICTION_THRESHOLD_EXCEEDED = 0x5D02,
SPARE_AREA_EXHAUSTION_PREDICTION_THRESHOLD_EXCEEDED = 0x5D03,
HW_IMPENDING_FAILURE_GENERAL_HARD_DRIVE_FAILURE = 0x5D10,
HW_IMPENDING_FAILURE_DRIVE_ERROR_RATE_TOO_HIGH = 0x5D11,
HW_IMPENDING_FAILURE_DATA_ERROR_RATE_TOO_HIGH = 0x5D12,
HW_IMPENDING_FAILURE_SEEK_ERROR_RATE_TOO_HIGH = 0x5D13,
HW_IMPENDING_FAILURE_TOO_MANY_BLOCK_REASSIGNS = 0x5D14,
HW_IMPENDING_FAILURE_ACCESS_TIMES_TOO_HIGH = 0x5D15,
HW_IMPENDING_FAILURE_START_UNIT_TIMES_TOO_HIGH = 0x5D16,
HW_IMPENDING_FAILURE_CHANNEL_PARAMETRICS = 0x5D17,
HW_IMPENDING_FAILURE_CONTROLLER_DETECTED = 0x5D18,
HW_IMPENDING_FAILURE_THROUGHPUT_PERFORMANCE = 0x5D19,
HW_IMPENDING_FAILURE_SEEK_TIME_PERFORMANCE = 0x5D1A,
HW_IMPENDING_FAILURE_SPINUP_RETRY_COUNT = 0x5D1B,
HW_IMPENDING_FAILURE_DRIVE_CALIBRATION_RETRY_COUNT = 0x5D1C,
HW_IMPENDING_FAILURE_POWER_LOSS_PROTECTION_CIRCUIT = 0x5D1D,
CONTROLLER_IMPENDING_FAILURE_GENERAL_HARD_DRIVE_FAILURE = 0x5D20,
CONTROLLER_IMPENDING_FAILURE_DRIVE_ERROR_RATE_TOO_HIGH = 0x5D21,
CONTROLLER_IMPENDING_FAILURE_DATA_ERROR_RATE_TOO_HIGH = 0x5D22,
CONTROLLER_IMPENDING_FAILURE_SEEK_ERROR_RATE_TOO_HIGH = 0x5D23,
CONTROLLER_IMPENDING_FAILURE_TOO_MANY_BLOCK_REASSIGNS = 0x5D24,
CONTROLLER_IMPENDING_FAILURE_ACCESS_TIMES_TOO_HIGH = 0x5D25,
CONTROLLER_IMPENDING_FAILURE_START_UNIT_TIMES_TOO_HIGH = 0x5D26,
CONTROLLER_IMPENDING_FAILURE_CHANNEL_PARAMETRICS = 0x5D27,
CONTROLLER_IMPENDING_FAILURE_CONTROLLER_DETECTED = 0x5D28,
CONTROLLER_IMPENDING_FAILURE_THROUGHPUT_PERFORMANCE = 0x5D29,
CONTROLLER_IMPENDING_FAILURE_SEEK_TIME_PERFORMANCE = 0x5D2A,
CONTROLLER_IMPENDING_FAILURE_SPINUP_RETRY_COUNT = 0x5D2B,
CONTROLLER_IMPENDING_FAILURE_DRIVE_CALIBRATION_RETRY_COUNT = 0x5D2C,
DATA_CHANNEL_IMPENDING_FAILURE_GENERAL_HARD_DRIVE_FAILURE = 0x5D30,
DATA_CHANNEL_IMPENDING_FAILURE_DRIVE_ERROR_RATE_TOO_HIGH = 0x5D31,
DATA_CHANNEL_IMPENDING_FAILURE_DATA_ERROR_RATE_TOO_HIGH = 0x5D32,
DATA_CHANNEL_IMPENDING_FAILURE_SEEK_ERROR_RATE_TOO_HIGH = 0x5D33,
DATA_CHANNEL_IMPENDING_FAILURE_TOO_MANY_BLOCK_REASSIGNS = 0x5D34,
DATA_CHANNEL_IMPENDING_FAILURE_ACCESS_TIMES_TOO_HIGH = 0x5D35,
DATA_CHANNEL_IMPENDING_FAILURE_START_UNIT_TIMES_TOO_HIGH = 0x5D36,
DATA_CHANNEL_IMPENDING_FAILURE_CHANNEL_PARAMETRICS = 0x5D37,
DATA_CHANNEL_IMPENDING_FAILURE_CONTROLLER_DETECTED = 0x5D38,
DATA_CHANNEL_IMPENDING_FAILURE_THROUGHPUT_PERFORMANCE = 0x5D39,
DATA_CHANNEL_IMPENDING_FAILURE_SEEK_TIME_PERFORMANCE = 0x5D3A,
DATA_CHANNEL_IMPENDING_FAILURE_SPINUP_RETRY_COUNT = 0x5D3B,
DATA_CHANNEL_IMPENDING_FAILURE_DRIVE_CALIBRATION_RETRY_COUNT = 0x5D3C,
SERVO_IMPENDING_FAILURE_GENERAL_HARD_DRIVE_FAILURE = 0x5D40,
SERVO_IMPENDING_FAILURE_DRIVE_ERROR_RATE_TOO_HIGH = 0x5D41,
SERVO_IMPENDING_FAILURE_DATA_ERROR_RATE_TOO_HIGH = 0x5D42,
SERVO_IMPENDING_FAILURE_SEEK_ERROR_RATE_TOO_HIGH = 0x5D43,
SERVO_IMPENDING_FAILURE_TOO_MANY_BLOCK_REASSIGNS = 0x5D44,
SERVO_IMPENDING_FAILURE_ACCESS_TIMES_TOO_HIGH = 0x5D45,
SERVO_IMPENDING_FAILURE_START_UNIT_TIMES_TOO_HIGH = 0x5D46,
SERVO_IMPENDING_FAILURE_CHANNEL_PARAMETRICS = 0x5D47,
SERVO_IMPENDING_FAILURE_CONTROLLER_DETECTED = 0x5D48,
SERVO_IMPENDING_FAILURE_THROUGHPUT_PERFORMANCE = 0x5D49,
SERVO_IMPENDING_FAILURE_SEEK_TIME_PERFORMANCE = 0x5D4A,
SERVO_IMPENDING_FAILURE_SPINUP_RETRY_COUNT = 0x5D4B,
SERVO_IMPENDING_FAILURE_DRIVE_CALIBRATION_RETRY_COUNT = 0x5D4C,
SPINDLE_IMPENDING_FAILURE_GENERAL_HARD_DRIVE_FAILURE = 0x5D50,
SPINDLE_IMPENDING_FAILURE_DRIVE_ERROR_RATE_TOO_HIGH = 0x5D51,
SPINDLE_IMPENDING_FAILURE_DATA_ERROR_RATE_TOO_HIGH = 0x5D52,
SPINDLE_IMPENDING_FAILURE_SEEK_ERROR_RATE_TOO_HIGH = 0x5D53,
SPINDLE_IMPENDING_FAILURE_TOO_MANY_BLOCK_REASSIGNS = 0x5D54,
SPINDLE_IMPENDING_FAILURE_ACCESS_TIMES_TOO_HIGH = 0x5D55,
SPINDLE_IMPENDING_FAILURE_START_UNIT_TIMES_TOO_HIGH = 0x5D56,
SPINDLE_IMPENDING_FAILURE_CHANNEL_PARAMETRICS = 0x5D57,
SPINDLE_IMPENDING_FAILURE_CONTROLLER_DETECTED = 0x5D58,
SPINDLE_IMPENDING_FAILURE_THROUGHPUT_PERFORMANCE = 0x5D59,
SPINDLE_IMPENDING_FAILURE_SEEK_TIME_PERFORMANCE = 0x5D5A,
SPINDLE_IMPENDING_FAILURE_SPINUP_RETRY_COUNT = 0x5D5B,
SPINDLE_IMPENDING_FAILURE_DRIVE_CALIBRATION_RETRY_COUNT = 0x5D5C,
FW_IMPENDING_FAILURE_GENERAL_HARD_DRIVE_FAILURE = 0x5D60,
FW_IMPENDING_FAILURE_DRIVE_ERROR_RATE_TOO_HIGH = 0x5D61,
FW_IMPENDING_FAILURE_DATA_ERROR_RATE_TOO_HIGH = 0x5D62,
FW_IMPENDING_FAILURE_SEEK_ERROR_RATE_TOO_HIGH = 0x5D63,
FW_IMPENDING_FAILURE_TOO_MANY_BLOCK_REASSIGNS = 0x5D64,
FW_IMPENDING_FAILURE_ACCESS_TIMES_TOO_HIGH = 0x5D65,
FW_IMPENDING_FAILURE_START_UNIT_TIMES_TOO_HIGH = 0x5D66,
FW_IMPENDING_FAILURE_CHANNEL_PARAMETRICS = 0x5D67,
FW_IMPENDING_FAILURE_CONTROLLER_DETECTED = 0x5D68,
FW_IMPENDING_FAILURE_THROUGHPUT_PERFORMANCE = 0x5D69,
FW_IMPENDING_FAILURE_SEEK_TIME_PERFORMANCE = 0x5D6A,
FW_IMPENDING_FAILURE_SPINUP_RETRY_COUNT = 0x5D6B,
FW_IMPENDING_FAILURE_DRIVE_CALIBRATION_RETRY_COUNT = 0x5D6C,
MEDIA_IMPENDING_FAILURE_ENDURANCE_LIMIT_MET = 0x5D73,
FAILURE_PREDICTION_THRESHOLD_EXCEEDED_FALSE = 0x5DFF,
ASC(LOW_POWER_CONDITION_ON, 0x5E),
IDLE_CONDITION_ACTIVATED_BY_TIMER = 0x5E01,
STANDBY_CONDITION_ACTIVATED_BY_TIMER = 0x5E02,
IDLE_CONDITION_ACTIVATED_BY_COMMAND = 0x5E03,
STANDBY_CONDITION_ACTIVATED_BY_COMMAND = 0x5E04,
IDLE_B_CONDITION_ACTIVATED_BY_TIMER = 0x5E05,
IDLE_B_CONDITION_ACTIVATED_BY_COMMAND = 0x5E06,
IDLE_C_CONDITION_ACTIVATED_BY_TIMER = 0x5E07,
IDLE_C_CONDITION_ACTIVATED_BY_COMMAND = 0x5E08,
STANDBY_Y_CONDITION_ACTIVATED_BY_TIMER = 0x5E09,
STANDBY_Y_CONDITION_ACTIVATED_BY_COMMAND = 0x5E0A,
POWER_STATE_CHANGE_TO_ACTIVE = 0x5E41,
POWER_STATE_CHANGE_TO_IDLE = 0x5E42,
POWER_STATE_CHANGE_TO_STANDBY = 0x5E43,
POWER_STATE_CHANGE_TO_SLEEP = 0x5E45,
POWER_STATE_CHANGE_TO_DEVICE_CONTROL = 0x5E47,
ASC(LAMP_FAILURE, 0x60),
ASC(VIDEO_ACQUISITION_ERROR, 0x61),
UNABLE_TO_ACQUIRE_VIDEO = 0x6101,
OUT_OF_FOCUS = 0x6102,
ASC(SCAN_HEAD_POSITIONING_ERROR, 0x62),
ASC(END_OF_USER_AREA_ENCOUNTERED_ON_THIS_TRACK, 0x63),
PACKET_DOES_NOT_FIT_IN_AVAILABLE_SPACE = 0x6301,
ASC(ILLEGAL_MODE_FOR_THIS_TRACK, 0x64),
INVALID_PACKET_SIZE = 0x6401,
ASC(VOLTAGE_FAULT, 0x65),
ASC(AUTOMATIC_DOCUMENT_FEEDER_COVER_UP, 0x66),
AUTOMATIC_DOCUMENT_FEEDER_LIFT_UP = 0x6601,
DOCUMENT_JAM_IN_AUTOMATIC_DOCUMENT_FEEDER = 0x6602,
DOCUMENT_MISS_FEED_AUTOMATIC_IN_DOCUMENT_FEEDER = 0x6603,
ASC(CONFIG_FAILURE, 0x67),
CONFIG_OF_INCAPABLE_LOGICAL_UNITS_FAILED = 0x6701,
ADD_LU_FAILED = 0x6702,
MODIFICATION_OF_LU_FAILED = 0x6703,
EXCHANGE_OF_LU_FAILED = 0x6704,
REMOVE_OF_LU_FAILED = 0x6705,
ATTACHMENT_OF_LU_FAILED = 0x6706,
CREATION_OF_LU_FAILED = 0x6707,
ASSIGN_FAILURE_OCCURRED = 0x6708,
MULTIPLY_ASSIGNED_LOGICAL_UNIT = 0x6709,
SET_TARGET_PORT_GROUPS_COMMAND_FAILED = 0x670A,
ATA_DEVICE_FEATURE_NOT_ENABLED = 0x670B,
COMMAND_REJECTED = 0x670C,
EXPLICIT_BIND_NOT_ALLOWED = 0x670D,
FEATURE_NOT_ENABLED = 0x670E,
ASC(LU_NOT_CONFIGURED, 0x68),
SUBSIDIARY_LU_NOT_CONFIGURED = 0x6801,
ASC(DATA_LOSS_ON_LOGICAL_UNIT, 0x69),
MULTIPLE_LU_FAILURES = 0x6901,
PARITY_DATA_MISMATCH = 0x6902,
ASC(INFORMATIONAL_REFER_TO_LOG, 0x6A),
ASC(STATE_CHANGE_HAS_OCCURRED, 0x6B),
REDUNDANCY_LEVEL_GOT_BETTER = 0x6B01,
REDUNDANCY_LEVEL_GOT_WORSE = 0x6B02,
ASC(REBUILD_FAILURE_OCCURRED, 0x6C),
ASC(RECALCULATE_FAILURE_OCCURRED, 0x6D),
ASC(COMMAND_TO_LU_FAILED, 0x6E),
ASC(COPY_PROTECTION_KEY_EXCHANGE_FAILURE_AUTHENTICATION_FAILURE, 0x6F),
COPY_PROTECTION_KEY_EXCHANGE_FAILURE_KEY_NOT_PRESENT = 0x6F01,
COPY_PROTECTION_KEY_EXCHANGE_FAILURE_KEY_NOT_ESTABLISHED = 0x6F02,
READ_OF_SCRAMBLED_SECTOR_WITHOUT_AUTHENTICATION = 0x6F03,
MEDIA_REGION_CODE_IS_MISMATCHED_TO_LU_REGION = 0x6F04,
DRIVE_REGION_MUST_BE_PERMANENT_REGION_RESET_COUNT_ERROR = 0x6F05,
INSUFFICIENT_BLOCK_COUNT_FOR_BINDING_NONCE_RECORDING = 0x6F06,
CONFLICT_IN_BINDING_NONCE_RECORDING = 0x6F07,
INSUFFICIENT_PERMISSION = 0x6F08,
INVALID_DRIVE_HOST_PAIRING_SERVER = 0x6F09,
DRIVE_HOST_PAIRING_SUSPENDED = 0x6F0A,
ASC(DECOMPRESSION_EXCEPTION_SHORT_ALGORITHM_ID, 0x70),
ASC(DECOMPRESSION_EXCEPTION_LONG_ALGORITHM_ID, 0x71),
ASC(SESSION_FIXATION_ERROR, 0x72),
SESSION_FIXATION_ERROR_WRITING_LEAD_IN = 0x7201,
SESSION_FIXATION_ERROR_WRITING_LEAD_OUT = 0x7202,
SESSION_FIXATION_ERROR_INCOMPLETE_TRACK_IN_SESSION = 0x7203,
EMPTY_OR_PARTIALLY_WRITTEN_RESERVED_TRACK = 0x7204,
NO_MORE_TRACK_RESERVATIONS_ALLOWED = 0x7205,
RMZ_EXTENSION_IS_NOT_ALLOWED = 0x7206,
NO_MORE_TEST_ZONE_EXTENSIONS_ARE_ALLOWED = 0x7207,
ASC(CD_CONTROL_ERROR, 0x73),
POWER_CALIBRATION_AREA_ALMOST_FULL = 0x7301,
POWER_CALIBRATION_AREA_IS_FULL = 0x7302,
POWER_CALIBRATION_AREA_ERROR = 0x7303,
PROGRAM_MEMORY_AREA_UPDATE_FAILURE = 0x7304,
PROGRAM_MEMORY_AREA_IS_FULL = 0x7305,
RMA_PMA_IS_ALMOST_FULL = 0x7306,
CURRENT_POWER_CALIBRATION_AREA_ALMOST_FULL = 0x7310,
CURRENT_POWER_CALIBRATION_AREA_IS_FULL = 0x7311,
RDZ_IS_FULL = 0x7317,
ASC(SECURITY_ERROR, 0x74),
UNABLE_TO_DECRYPT_DATA = 0x7401,
UNENCRYPTED_DATA_ENCOUNTERED_WHILE_DECRYPTING = 0x7402,
INCORRECT_DATA_ENCRYPTION_KEY = 0x7403,
CRYPTOGRAPHIC_INTEGRITY_VALIDATION_FAILED = 0x7404,
ERROR_DECRYPTING_DATA = 0x7405,
UNKNOWN_SIGNATURE_VERIFICATION_KEY = 0x7406,
ENCRYPTION_PARAMS_NOT_USEABLE = 0x7407,
DIGITAL_SIGNATURE_VALIDATION_FAILURE = 0x7408,
ENCRYPTION_MODE_MISMATCH_ON_READ = 0x7409,
ENCRYPTED_BLOCK_NOT_RAW_READ_ENABLED = 0x740A,
INCORRECT_ENCRYPTION_PARAMS = 0x740B,
UNABLE_TO_DECRYPT_PARAMETER_LIST = 0x740C,
ENCRYPTION_ALGORITHM_DISABLED = 0x740D,
SA_CREATION_PARAMETER_VALUE_INVALID = 0x7410,
SA_CREATION_PARAMETER_VALUE_REJECTED = 0x7411,
INVALID_SA_USAGE = 0x7412,
DATA_ENCRYPTION_CONFIG_PREVENTED = 0x7421,
SA_CREATION_PARAMETER_NOT_SUPPORTED = 0x7430,
AUTHENTICATION_FAILED = 0x7440,
EXTERNAL_DATA_ENCRYPTION_KEY_MANAGER_ACCESS_ERROR = 0x7461,
EXTERNAL_DATA_ENCRYPTION_KEY_MANAGER_ERROR = 0x7462,
EXTERNAL_DATA_ENCRYPTION_KEY_NOT_FOUND = 0x7463,
EXTERNAL_DATA_ENCRYPTION_REQUEST_NOT_AUTHORIZED = 0x7464,
EXTERNAL_DATA_ENCRYPTION_CONTROL_TIMEOUT = 0x746E,
EXTERNAL_DATA_ENCRYPTION_CONTROL_ERROR = 0x746F,
LU_ACCESS_NOT_AUTHORIZED = 0x7471,
SECURITY_CONFLICT_IN_TRANSLATED_DEVICE = 0x7479,
};
#undef ASC_DEF
#undef ASC
/*
* Use this to build non-standard sense codes.
* Note: this is defined as a macro instead of an inline function so that it can
* be used to define SCSI failures array variables (see struct scsi_failure).
*/
#define scsi_sense_code(asc, ascq) \
((((asc) & 0xff) << 8) | ((ascq) & 0xff))
static inline u8 scsi_sense_code_asc(u16 code)
{
return (code >> 8) & 0xff;
}
static inline u8 scsi_sense_code_ascq(u16 code)
{
return code & 0xff;
}
#endif /* _SCSI_SENSE_H_ */