All of lore.kernel.org
 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>,
	linux-s390@vger.kernel.org, Heiko Carstens <hca@linux.ibm.com>
Subject: [PATCH v5 01/40] scsi: define all additional sense codes and their qualifiers
Date: Mon,  7 Sep 2026 11:43:04 +0900	[thread overview]
Message-ID: <20260907024343.1046387-2-dlemoal@kernel.org> (raw)
In-Reply-To: <20260907024343.1046387-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>
Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>
---
 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-09-07  2:43 UTC|newest]

Thread overview: 118+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-09-07  2:43 [PATCH v5 00/40] Use defined 16-bits ASC/ASCQ combinations Damien Le Moal
2026-09-07  2:43 ` Damien Le Moal [this message]
2026-09-07  3:14   ` [PATCH v5 01/40] scsi: define all additional sense codes and their qualifiers sashiko-bot
2026-09-07  3:51     ` Damien Le Moal
2026-09-07  3:59       ` Damien Le Moal
2026-09-07 19:59       ` Bart Van Assche
2026-09-08  0:30         ` Damien Le Moal
2026-09-08  1:20           ` Bart Van Assche
2026-09-08  1:43             ` Damien Le Moal
2026-09-07  2:43 ` [PATCH v5 02/40] scsi: constants: use defined sense codes Damien Le Moal
2026-09-07  2:51   ` sashiko-bot
2026-09-07  2:43 ` [PATCH v5 03/40] scsi: constants: rename internal struct field names Damien Le Moal
2026-09-07  2:48   ` sashiko-bot
2026-09-07  2:43 ` [PATCH v5 04/40] scsi: rename sense field of struct scsi_failure Damien Le Moal
2026-09-07  2:54   ` sashiko-bot
2026-09-07  2:43 ` [PATCH v5 05/40] scsi: prepare for using 16-bits defined sense codes Damien Le Moal
2026-09-07  2:54   ` sashiko-bot
2026-09-07  2:43 ` [PATCH v5 06/40] scsi: use struct scsi_sense_hdr to log sense keys and codes Damien Le Moal
2026-09-07  2:52   ` sashiko-bot
2026-09-07 20:05   ` Bart Van Assche
2026-09-08  0:32     ` Damien Le Moal
2026-09-07  2:43 ` [PATCH v5 07/40] scsi: core: use 16-bits defined sense codes Damien Le Moal
2026-09-07  2:54   ` sashiko-bot
2026-09-07 20:03   ` Bart Van Assche
2026-09-08  0:32     ` Damien Le Moal
2026-09-07  2:43 ` [PATCH v5 08/40] scsi: sd: " Damien Le Moal
2026-09-07  3:11   ` sashiko-bot
2026-09-07  2:43 ` [PATCH v5 09/40] scsi: sr: " Damien Le Moal
2026-09-07  2:54   ` sashiko-bot
2026-09-07  2:43 ` [PATCH v5 10/40] scsi: ses: " Damien Le Moal
2026-09-07  2:56   ` sashiko-bot
2026-09-07  2:43 ` [PATCH v5 11/40] scsi: ch: " Damien Le Moal
2026-09-07  2:54   ` sashiko-bot
2026-09-07  2:43 ` [PATCH v5 12/40] scsi: st: " Damien Le Moal
2026-09-07  2:57   ` sashiko-bot
2026-09-07  2:43 ` [PATCH v5 13/40] scsi: device_handlers: hp_sw: " Damien Le Moal
2026-09-07  2:50   ` sashiko-bot
2026-09-07  2:43 ` [PATCH v5 14/40] scsi: device_handlers: rdac: " Damien Le Moal
2026-09-07  2:52   ` sashiko-bot
2026-09-07 14:11   ` Johannes Thumshirn
2026-09-07  2:43 ` [PATCH v5 15/40] scsi: device_handlers: emc: " Damien Le Moal
2026-09-07  3:02   ` sashiko-bot
2026-09-07 14:13   ` Johannes Thumshirn
2026-09-07  2:43 ` [PATCH v5 16/40] scsi: device_handlers: alua: " Damien Le Moal
2026-09-07  2:57   ` sashiko-bot
2026-09-07 14:21   ` Johannes Thumshirn
2026-09-07  2:43 ` [PATCH v5 17/40] scsi: mpt3sas: " Damien Le Moal
2026-09-07  2:55   ` sashiko-bot
2026-09-07 14:28   ` Johannes Thumshirn
2026-09-07  2:43 ` [PATCH v5 18/40] scsi: mpi3mr: " Damien Le Moal
2026-09-07  2:55   ` sashiko-bot
2026-09-07 14:30   ` Johannes Thumshirn
2026-09-07  2:43 ` [PATCH v5 19/40] scsi: 3w-xxxx: " Damien Le Moal
2026-09-07  2:58   ` sashiko-bot
2026-09-07 14:39   ` Johannes Thumshirn
2026-09-07  2:43 ` [PATCH v5 20/40] scsi: leapraid: " Damien Le Moal
2026-09-07  3:00   ` sashiko-bot
2026-09-07 14:48   ` Johannes Thumshirn
2026-09-07  2:43 ` [PATCH v5 21/40] scsi: megaraid: " Damien Le Moal
2026-09-07  2:56   ` sashiko-bot
2026-09-07 14:50   ` Johannes Thumshirn
2026-09-07  2:43 ` [PATCH v5 22/40] scsi: myrX: " Damien Le Moal
2026-09-07  2:59   ` sashiko-bot
2026-09-07 14:54   ` Johannes Thumshirn
2026-09-07  2:43 ` [PATCH v5 23/40] scsi: smartpqi: " Damien Le Moal
2026-09-07  2:57   ` sashiko-bot
2026-09-07 14:57   ` Johannes Thumshirn
2026-09-07  2:43 ` [PATCH v5 24/40] scsi: qla2xxx: " Damien Le Moal
2026-09-07  2:58   ` sashiko-bot
2026-09-07  2:43 ` [PATCH v5 25/40] scsi: ps3rom: " Damien Le Moal
2026-09-07  3:03   ` sashiko-bot
2026-09-07 15:25   ` Johannes Thumshirn
2026-09-07  2:43 ` [PATCH v5 26/40] scsi: lpfc: " Damien Le Moal
2026-09-07  3:02   ` sashiko-bot
2026-09-07 15:26   ` Johannes Thumshirn
2026-09-07  2:43 ` [PATCH v5 27/40] scsi: stex: " Damien Le Moal
2026-09-07  3:04   ` sashiko-bot
2026-09-07 15:26   ` Johannes Thumshirn
2026-09-07  2:43 ` [PATCH v5 28/40] scsi: mvumi: " Damien Le Moal
2026-09-07  3:03   ` sashiko-bot
2026-09-07 15:29   ` Johannes Thumshirn
2026-09-07  2:43 ` [PATCH v5 29/40] scsi: libiscsi: " Damien Le Moal
2026-09-07  3:03   ` sashiko-bot
2026-09-07 15:29   ` Johannes Thumshirn
2026-09-07  2:43 ` [PATCH v5 30/40] scsi: ibmvscsi_tgt: " Damien Le Moal
2026-09-07  3:05   ` sashiko-bot
2026-09-07 15:32   ` Johannes Thumshirn
2026-09-07  2:43 ` [PATCH v5 31/40] scsi: scsi_debug: " Damien Le Moal
2026-09-07  3:12   ` sashiko-bot
2026-09-07 15:41   ` Johannes Thumshirn
2026-09-07  2:43 ` [PATCH v5 32/40] scsi: hpsa: " Damien Le Moal
2026-09-07  3:03   ` sashiko-bot
2026-09-07 15:57   ` Johannes Thumshirn
2026-09-07  2:43 ` [PATCH v5 33/40] scsi: storvsc: " Damien Le Moal
2026-09-07  3:06   ` sashiko-bot
2026-09-07 15:59   ` Johannes Thumshirn
2026-09-07  2:43 ` [PATCH v5 34/40] target: " Damien Le Moal
2026-09-07  3:11   ` sashiko-bot
2026-09-07  2:43 ` [PATCH v5 35/40] usb: storage: " Damien Le Moal
2026-09-07  3:02   ` sashiko-bot
2026-09-07 16:13   ` Johannes Thumshirn
2026-09-08  0:27     ` Damien Le Moal
2026-09-08  1:20       ` Alan Stern
2026-09-07  2:43 ` [PATCH v5 36/40] cdrom: " Damien Le Moal
2026-09-07  3:03   ` sashiko-bot
2026-09-07 16:21   ` Johannes Thumshirn
2026-09-07  2:43 ` [PATCH v5 37/40] ata: libata: " Damien Le Moal
2026-09-07  3:04   ` sashiko-bot
2026-09-07 16:21   ` Johannes Thumshirn
2026-09-07  2:43 ` [PATCH v5 38/40] s390: scsi: " Damien Le Moal
2026-09-07  3:09   ` sashiko-bot
2026-09-07 16:25   ` Johannes Thumshirn
2026-09-07  2:43 ` [PATCH v5 39/40] scsi: cleanup scsi_proto.h Damien Le Moal
2026-09-07  3:07   ` sashiko-bot
2026-09-07 16:45   ` Johannes Thumshirn
2026-09-07  2:43 ` [PATCH v5 40/40] scsi: remove scsi_build_sense() and scsi_build_sense_buffer() Damien Le Moal
2026-09-07  3:02   ` sashiko-bot
2026-09-07 16:57   ` Johannes Thumshirn

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=20260907024343.1046387-2-dlemoal@kernel.org \
    --to=dlemoal@kernel.org \
    --cc=James.Bottomley@HansenPartnership.com \
    --cc=cassel@kernel.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=hca@linux.ibm.com \
    --cc=linux-ide@vger.kernel.org \
    --cc=linux-s390@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.