Linux SCSI subsystem development
 help / color / mirror / Atom feed
From: Damien Le Moal <dlemoal@kernel.org>
To: "Martin K . Petersen" <martin.petersen@oracle.com>,
	"James E . J . Bottomley" <James.Bottomley@HansenPartnership.com>,
	linux-scsi@vger.kernel.org, linux-ide@vger.kernel.org,
	Niklas Cassel <cassel@kernel.org>,
	linux-usb@vger.kernel.org, Alan Stern <stern@rowland.harvard.edu>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Subject: [PATCH 01/37] scsi: define all additional sense codes and their qualifiers
Date: Mon, 31 Aug 2026 11:04:15 +0900	[thread overview]
Message-ID: <20260831020451.585944-2-dlemoal@kernel.org> (raw)
In-Reply-To: <20260831020451.585944-1-dlemoal@kernel.org>

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 non-zero code qualifiers are defined as 16-bits values. The
16-bits value for ASCs with a zero ASCQ are defined together with the ASC
8-code using the ASC() macro.

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-bits sense code from 8-bits ASC and ASCQ. The accessors
scsi_sense_code_asc() and scsi_sense_code_ascq() are defined for the
reverse operation, that is, to respectively extract an ASC and an ASCQ
from a 16-bits sense code.

Signed-off-by: Damien Le Moal <dlemoal@kernel.org>
---
 include/scsi/scsi_proto.h |  20 +-
 include/scsi/scsi_sense.h | 943 ++++++++++++++++++++++++++++++++++++++
 2 files changed, 944 insertions(+), 19 deletions(-)
 create mode 100644 include/scsi/scsi_sense.h

diff --git a/include/scsi/scsi_proto.h b/include/scsi/scsi_proto.h
index c6b4a4dc8d9c..f742a3bfeb86 100644
--- a/include/scsi/scsi_proto.h
+++ b/include/scsi/scsi_proto.h
@@ -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).
  */
diff --git a/include/scsi/scsi_sense.h b/include/scsi/scsi_sense.h
new file mode 100644
index 000000000000..e668ac1c2302
--- /dev/null
+++ b/include/scsi/scsi_sense.h
@@ -0,0 +1,943 @@
+/* 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
+ * The definitions are sorted in increasing sense code value order.
+ * The additional sense code and its qualifier are combined as a single value
+ * equal to (ASC << 8) | ASCQ.
+ */
+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(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,
+
+	ASC(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_ */
-- 
2.55.0


  reply	other threads:[~2026-08-31  2:05 UTC|newest]

Thread overview: 51+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-08-31  2:04 [PATCH 00/37] Use defined 16-bits ASC/ASCQ combinations Damien Le Moal
2026-08-31  2:04 ` Damien Le Moal [this message]
2026-08-31  2:04 ` [PATCH 02/37] scsi: constants: use defined sense codes Damien Le Moal
2026-08-31  2:04 ` [PATCH 03/37] scsi: constants: rename internal struct field names Damien Le Moal
2026-08-31  2:04 ` [PATCH 04/37] scsi: rename sense field of struct scsi_failure Damien Le Moal
2026-08-31  2:17   ` sashiko-bot
2026-08-31  2:04 ` [PATCH 05/37] scsi: prepare for using 16-bits defined sense codes Damien Le Moal
2026-08-31  2:04 ` [PATCH 06/37] scsi: use struct scsi_sense_hdr to log sense keys and codes Damien Le Moal
2026-08-31  2:04 ` [PATCH 07/37] scsi: core: use 16-bits defined sense codes Damien Le Moal
2026-08-31  2:18   ` sashiko-bot
2026-08-31  2:04 ` [PATCH 08/37] scsi: sd: " Damien Le Moal
2026-08-31  2:04 ` [PATCH 09/37] scsi: sr: " Damien Le Moal
2026-08-31  2:04 ` [PATCH 10/37] scsi: ses: " Damien Le Moal
2026-08-31  2:04 ` [PATCH 11/37] scsi: ch: " Damien Le Moal
2026-08-31  2:04 ` [PATCH 12/37] scsi: st: " Damien Le Moal
2026-08-31  2:19   ` sashiko-bot
2026-08-31  2:04 ` [PATCH 13/37] scsi: device_handlers: hp_sw: " Damien Le Moal
2026-08-31  2:04 ` [PATCH 14/37] scsi: device_handlers: rdac: " Damien Le Moal
2026-08-31  2:04 ` [PATCH 15/37] scsi: device_handlers: emc: " Damien Le Moal
2026-08-31  2:04 ` [PATCH 16/37] scsi: device_handlers: alua: " Damien Le Moal
2026-08-31  2:04 ` [PATCH 17/37] scsi: mpt3sas: " Damien Le Moal
2026-08-31  2:19   ` sashiko-bot
2026-08-31  2:04 ` [PATCH 18/37] scsi: mpi3mr: " Damien Le Moal
2026-08-31  2:04 ` [PATCH 19/37] scsi: 3w-xxxx: " Damien Le Moal
2026-08-31  2:04 ` [PATCH 20/37] scsi: leapraid: " Damien Le Moal
2026-08-31  2:18   ` sashiko-bot
2026-08-31  2:04 ` [PATCH 21/37] scsi: megaraid: " Damien Le Moal
2026-08-31  2:04 ` [PATCH 22/37] scsi: myrX: " Damien Le Moal
2026-08-31  2:30   ` sashiko-bot
2026-08-31  2:04 ` [PATCH 23/37] scsi: smartpqi: " Damien Le Moal
2026-08-31  2:04 ` [PATCH 24/37] scsi: qla2xxx: " Damien Le Moal
2026-08-31  2:04 ` [PATCH 25/37] scsi: ps3rom: " Damien Le Moal
2026-08-31  2:04 ` [PATCH 26/37] scsi: lpfc: " Damien Le Moal
2026-08-31  2:04 ` [PATCH 27/37] scsi: stex: " Damien Le Moal
2026-08-31  2:04 ` [PATCH 28/37] scsi: mvumi: " Damien Le Moal
2026-08-31  2:24   ` sashiko-bot
2026-08-31  2:04 ` [PATCH 29/37] scsi: libiscsi: " Damien Le Moal
2026-08-31  2:04 ` [PATCH 30/37] scsi: ibmvscsi_tgt: " Damien Le Moal
2026-08-31  2:27   ` sashiko-bot
2026-08-31  2:04 ` [PATCH 31/37] scsi: scsi_debug: " Damien Le Moal
2026-08-31  2:04 ` [PATCH 32/37] scsi: hpsa: " Damien Le Moal
2026-08-31  2:04 ` [PATCH 33/37] scsi: storvsc: " Damien Le Moal
2026-08-31  2:27   ` sashiko-bot
2026-08-31  2:04 ` [PATCH 34/37] usb: storage: " Damien Le Moal
2026-08-31  2:04 ` [PATCH 35/37] cdrom: " Damien Le Moal
2026-08-31  2:29   ` sashiko-bot
2026-08-31  2:04 ` [PATCH 36/37] ata: libata: " Damien Le Moal
2026-09-02 11:29   ` Niklas Cassel
2026-08-31  2:04 ` [PATCH 37/37] scsi: cleanup scsi_proto.h Damien Le Moal
2026-08-31  2:31   ` sashiko-bot
2026-08-31  2:36 ` [PATCH 00/37] Use defined 16-bits ASC/ASCQ combinations Damien Le Moal

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20260831020451.585944-2-dlemoal@kernel.org \
    --to=dlemoal@kernel.org \
    --cc=James.Bottomley@HansenPartnership.com \
    --cc=cassel@kernel.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=linux-ide@vger.kernel.org \
    --cc=linux-scsi@vger.kernel.org \
    --cc=linux-usb@vger.kernel.org \
    --cc=martin.petersen@oracle.com \
    --cc=stern@rowland.harvard.edu \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox