View Javadoc

1   package org.jscsi.target.scsi.sense;
2   
3   
4   import java.util.Map;
5   import java.util.concurrent.ConcurrentHashMap;
6   
7   
8   /**
9    * This enumeration holds pairs of additional sense codes and additional sense code qualifiers. All 745 combinations
10   * relevant for direct access block devices are listed.
11   * <p>
12   * Since additional sense codes and additional sense code qualifiers cannot be combined arbitrarily, a single
13   * enumeration has been chosen to represent those two fields.
14   * <p>
15   * The (byte) values of the additional sense code and the additional sense code qualifier, respectively, can be
16   * retrieved independently from a given instance.
17   * 
18   * @author Andreas Ergenzinger
19   */
20  public enum AdditionalSenseCodeAndQualifier {
21  
22      ACCESS_DENIED_ACL_LUN_CONFLICT((short) 0x200b), ACCESS_DENIED_ENROLLMENT_CONFLICT((short) 0x2008), ACCESS_DENIED_INITIATOR_PENDING_ENROLLED((short) 0x2001), ACCESS_DENIED_INVALID_LU_IDENTIFIER((short) 0x2009), ACCESS_DENIED_INVALID_MGMT_ID_KEY((short) 0x2003), ACCESS_DENIED_INVALID_PROXY_TOKEN((short) 0x200a), ACCESS_DENIED_NO_ACCESS_RIGHTS((short) 0x2002), ACK_NAK_TIMEOUT((short) 0x4b03), DADDRESS_MARK_NOT_FOUND_FOR_DATA_FIELD((short) 0x1300), DADDRESS_MARK_NOT_FOUND_FOR_ID_FIELD((short) 0x1200), ASYMMETRIC_ACCESS_STATE_CHANGED((short) 0x2a06), ASYNCHRONOUS_INFORMATION_PROTECTION_ERROR_DETECTED((short) 0x4704), AUXILIARY_MEMORY_OUT_OF_SPACE((short) 0x5506), AUXILIARY_MEMORY_READ_ERROR((short) 0x1112), AUXILIARY_MEMORY_WRITE_ERROR((short) 0x0c0b), BLOCK_NOT_COMPRESSIBLE((short) 0x0c06), BUS_DEVICE_RESET_FUNCTION_OCCURRED((short) 0x2903), CANNOT_DECOMPRESS_USING_DECLARED_ALGORITHM((short) 0x110e), CANNOT_FORMAT_MEDIUM_INCOMPATIBLE_MEDIUM((short) 0x3006), CANNOT_READ_MEDIUM_INCOMPATIBLE_FORMAT((short) 0x3002), CANNOT_READ_MEDIUM_UNKNOWN_FORMAT((short) 0x3001), CANNOT_WRITE_MEDIUM_INCOMPATIBLE_FORMAT((short) 0x3005), CANNOT_WRITE_MEDIUM_UNKNOWN_FORMAT((short) 0x3004), CAPACITY_DATA_HAS_CHANGED((short) 0x2a09), CDB_DECRYPTION_ERROR((short) 0x2401), CHANGED_OPERATING_DEFINITION((short) 0x3f02), CLEANING_CARTRIDGE_INSTALLED((short) 0x3003), CLEANING_FAILURE((short) 0x3007), CLEANING_REQUEST_REJECTED((short) 0x300a), CLEANING_REQUESTED((short) 0x0017), COMMAND_PHASE_ERROR((short) 0x4a00), COMMAND_SEQUENCE_ERROR((short) 0x2c00), COMMANDS_CLEARED_BY_ANOTHER_INITIATOR((short) 0x2f00), COMPONENT_DEVICE_ATTACHED((short) 0x3f04), COMPRESSION_CHECK_MISCOMPARE_ERROR((short) 0x0c04), CONTROLLER_IMPENDING_FAILURE_ACCESS_TIMES_TOO_HIGH((short) 0x5d25), CONTROLLER_IMPENDING_FAILURE_CHANNEL_PARAMETRICS((short) 0x5d27), CONTROLLER_IMPENDING_FAILURE_CONTROLLER_DETECTED((short) 0x5d28), CONTROLLER_IMPENDING_FAILURE_DATA_ERROR_RATE_TOO_HIGH((short) 0x5d22), CONTROLLER_IMPENDING_FAILURE_DRIVE_CALIBRATION_RETRY_COUNT((short) 0x5d2c), CONTROLLER_IMPENDING_FAILURE_DRIVE_ERROR_RATE_TOO_HIGH((short) 0x5d21), CONTROLLER_IMPENDING_FAILURE_GENERAL_HARD_DRIVE_FAILURE((short) 0x5d20), CONTROLLER_IMPENDING_FAILURE_SEEK_ERROR_RATE_TOO_HIGH((short) 0x5d23), CONTROLLER_IMPENDING_FAILURE_SEEK_TIME_PERFORMANCE((short) 0x5d2a), CONTROLLER_IMPENDING_FAILURE_SPIN_UP_RETRY_COUNT((short) 0x5d2b), CONTROLLER_IMPENDING_FAILURE_START_UNIT_TIMES_TOO_HIGH((short) 0x5d26), CONTROLLER_IMPENDING_FAILURE_THROUGHPUT_PERFORMANCE((short) 0x5d29), CONTROLLER_IMPENDING_FAILURE_TOO_MANY_BLOCK_REASSIGNS((short) 0x5d24), COPY_CANNOT_EXECUTE_SINCE_HOST_CANNOT_DISCONNECT((short) 0x2b00), COPY_SEGMENT_GRANULARITY_VIOLATION((short) 0x260d), COPY_TARGET_DEVICE_DATA_OVERRUN((short) 0x0d05), COPY_TARGET_DEVICE_DATA_UNDERRUN((short) 0x0d04), COPY_TARGET_DEVICE_NOT_REACHABLE((short) 0x0d02), DATA_BLOCK_APPLICATION_TAG_CHECK_FAILED((short) 0x1002), DATA_BLOCK_GUARD_CHECK_FAILED((short) 0x1001), DATA_BLOCK_REFERENCE_TAG_CHECK_FAILED((short) 0x1003), DATA_CHANNEL_IMPENDING_FAILURE_ACCESS_TIMES_TOO_HIGH((short) 0x5d35), DATA_CHANNEL_IMPENDING_FAILURE_CHANNEL_PARAMETRICS((short) 0x5d37), DATA_CHANNEL_IMPENDING_FAILURE_CONTROLLER_DETECTED((short) 0x5d38), DATA_CHANNEL_IMPENDING_FAILURE_DATA_ERROR_RATE_TOO_HIGH((short) 0x5d32), DATA_CHANNEL_IMPENDING_FAILURE_DRIVE_CALIBRATION_RETRY_COUNT((short) 0x5d3c), DATA_CHANNEL_IMPENDING_FAILURE_DRIVE_ERROR_RATE_TOO_HIGH((short) 0x5d31), DATA_CHANNEL_IMPENDING_FAILURE_GENERAL_HARD_DRIVE_FAILURE((short) 0x5d30), DATA_CHANNEL_IMPENDING_FAILURE_SEEK_ERROR_RATE_TOO_HIGH((short) 0x5d33), DATA_CHANNEL_IMPENDING_FAILURE_SEEK_TIME_PERFORMANCE((short) 0x5d3a), DATA_CHANNEL_IMPENDING_FAILURE_SPIN_UP_RETRY_COUNT((short) 0x5d3b), DATA_CHANNEL_IMPENDING_FAILURE_START_UNIT_TIMES_TOO_HIGH((short) 0x5d36), DATA_CHANNEL_IMPENDING_FAILURE_THROUGHPUT_PERFORMANCE((short) 0x5d39), DATA_CHANNEL_IMPENDING_FAILURE_TOO_MANY_BLOCK_REASSIGNS((short) 0x5d34), DATA_DECRYPTION_ERROR((short) 0x2605), DATA_EXPANSION_OCCURRED_DURING_COMPRESSION((short) 0x0c05), DATA_OFFSET_ERROR((short) 0x4b05), DATA_PATH_FAILURE((short) 0x4100), DATA_PHASE_CRC_ERROR_DETECTED((short) 0x4701), DATA_PHASE_ERROR((short) 0x4b00), DATA_SYNC_ERROR_DATA_AUTO_REALLOCATED((short) 0x1603), DATA_SYNC_ERROR_DATA_REWRITTEN((short) 0x1601), DATA_SYNC_ERROR_RECOMMEND_REASSIGNMENT((short) 0x1604), DATA_SYNC_ERROR_RECOMMEND_REWRITE((short) 0x1602), DATA_SYNCHRONIZATION_MARK_ERROR((short) 0x1600), DE_COMPRESSION_CRC_ERROR((short) 0x110d), DEFECT_LIST_ERROR((short) 0x1900), DEFECT_LIST_ERROR_IN_GROWN_LIST((short) 0x1903), DEFECT_LIST_ERROR_IN_PRIMARY_LIST((short) 0x1902), DEFECT_LIST_NOT_AVAILABLE((short) 0x1901), DEFECT_LIST_NOT_FOUND((short) 0x1c00), DEFECT_LIST_UPDATE_FAILURE((short) 0x3201), DEVICE_IDENTIFIER_CHANGED((short) 0x3f05), DEVICE_INTERNAL_RESET((short) 0x2904),
23      /*
24       * TODO DIAGNOSTIC_FAILURE_ON_COMPONENT((short)0x40NN) NN ranges from 0x80 to 0xff
25       */
26      DIAGNOSTIC_FAILURE_ON_COMPONENT_0X80((short) 0x4080), DIAGNOSTIC_FAILURE_ON_COMPONENT_0X81((short) 0x4081), DIAGNOSTIC_FAILURE_ON_COMPONENT_0X82((short) 0x4082), DIAGNOSTIC_FAILURE_ON_COMPONENT_0X83((short) 0x4083), DIAGNOSTIC_FAILURE_ON_COMPONENT_0X84((short) 0x4084), DIAGNOSTIC_FAILURE_ON_COMPONENT_0X85((short) 0x4085), DIAGNOSTIC_FAILURE_ON_COMPONENT_0X86((short) 0x4086), DIAGNOSTIC_FAILURE_ON_COMPONENT_0X87((short) 0x4087), DIAGNOSTIC_FAILURE_ON_COMPONENT_0X88((short) 0x4088), DIAGNOSTIC_FAILURE_ON_COMPONENT_0X89((short) 0x4089), DIAGNOSTIC_FAILURE_ON_COMPONENT_0X8A((short) 0x408a), DIAGNOSTIC_FAILURE_ON_COMPONENT_0X8B((short) 0x408b), DIAGNOSTIC_FAILURE_ON_COMPONENT_0X8C((short) 0x408c), DIAGNOSTIC_FAILURE_ON_COMPONENT_0X8D((short) 0x408d), DIAGNOSTIC_FAILURE_ON_COMPONENT_0X8E((short) 0x408e), DIAGNOSTIC_FAILURE_ON_COMPONENT_0X8F((short) 0x408f), DIAGNOSTIC_FAILURE_ON_COMPONENT_0X90((short) 0x4090), DIAGNOSTIC_FAILURE_ON_COMPONENT_0X91((short) 0x4091), DIAGNOSTIC_FAILURE_ON_COMPONENT_0X92((short) 0x4092), DIAGNOSTIC_FAILURE_ON_COMPONENT_0X93((short) 0x4093), DIAGNOSTIC_FAILURE_ON_COMPONENT_0X94((short) 0x4094), DIAGNOSTIC_FAILURE_ON_COMPONENT_0X95((short) 0x4095), DIAGNOSTIC_FAILURE_ON_COMPONENT_0X96((short) 0x4096), DIAGNOSTIC_FAILURE_ON_COMPONENT_0X97((short) 0x4097), DIAGNOSTIC_FAILURE_ON_COMPONENT_0X98((short) 0x4098), DIAGNOSTIC_FAILURE_ON_COMPONENT_0X99((short) 0x4099), DIAGNOSTIC_FAILURE_ON_COMPONENT_0X9A((short) 0x409a), DIAGNOSTIC_FAILURE_ON_COMPONENT_0X9B((short) 0x409b), DIAGNOSTIC_FAILURE_ON_COMPONENT_0X9C((short) 0x409c), DIAGNOSTIC_FAILURE_ON_COMPONENT_0X9D((short) 0x409d), DIAGNOSTIC_FAILURE_ON_COMPONENT_0X9E((short) 0x409e), DIAGNOSTIC_FAILURE_ON_COMPONENT_0X9F((short) 0x409f), DIAGNOSTIC_FAILURE_ON_COMPONENT_0XA0((short) 0x40a0), DIAGNOSTIC_FAILURE_ON_COMPONENT_0XA1((short) 0x40a1), DIAGNOSTIC_FAILURE_ON_COMPONENT_0XA2((short) 0x40a2), DIAGNOSTIC_FAILURE_ON_COMPONENT_0XA3((short) 0x40a3), DIAGNOSTIC_FAILURE_ON_COMPONENT_0XA4((short) 0x40a4), DIAGNOSTIC_FAILURE_ON_COMPONENT_0XA5((short) 0x40a5), DIAGNOSTIC_FAILURE_ON_COMPONENT_0XA6((short) 0x40a6), DIAGNOSTIC_FAILURE_ON_COMPONENT_0XA7((short) 0x40a7), DIAGNOSTIC_FAILURE_ON_COMPONENT_0XA8((short) 0x40a8), DIAGNOSTIC_FAILURE_ON_COMPONENT_0XA9((short) 0x40a9), DIAGNOSTIC_FAILURE_ON_COMPONENT_0XAA((short) 0x40aa), DIAGNOSTIC_FAILURE_ON_COMPONENT_0XAB((short) 0x40ab), DIAGNOSTIC_FAILURE_ON_COMPONENT_0XAC((short) 0x40ac), DIAGNOSTIC_FAILURE_ON_COMPONENT_0XAD((short) 0x40ad), DIAGNOSTIC_FAILURE_ON_COMPONENT_0XAE((short) 0x40ae), DIAGNOSTIC_FAILURE_ON_COMPONENT_0XAF((short) 0x40af), DIAGNOSTIC_FAILURE_ON_COMPONENT_0XB0((short) 0x40b0), DIAGNOSTIC_FAILURE_ON_COMPONENT_0XB1((short) 0x40b1), DIAGNOSTIC_FAILURE_ON_COMPONENT_0XB2((short) 0x40b2), DIAGNOSTIC_FAILURE_ON_COMPONENT_0XB3((short) 0x40b3), DIAGNOSTIC_FAILURE_ON_COMPONENT_0XB4((short) 0x40b4), DIAGNOSTIC_FAILURE_ON_COMPONENT_0XB5((short) 0x40b5), DIAGNOSTIC_FAILURE_ON_COMPONENT_0XB6((short) 0x40b6), DIAGNOSTIC_FAILURE_ON_COMPONENT_0XB7((short) 0x40b7), DIAGNOSTIC_FAILURE_ON_COMPONENT_0XB8((short) 0x40b8), DIAGNOSTIC_FAILURE_ON_COMPONENT_0XB9((short) 0x40b9), DIAGNOSTIC_FAILURE_ON_COMPONENT_0XBA((short) 0x40ba), DIAGNOSTIC_FAILURE_ON_COMPONENT_0XBB((short) 0x40bb), DIAGNOSTIC_FAILURE_ON_COMPONENT_0XBC((short) 0x40bc), DIAGNOSTIC_FAILURE_ON_COMPONENT_0XBD((short) 0x40bd), DIAGNOSTIC_FAILURE_ON_COMPONENT_0XBE((short) 0x40be), DIAGNOSTIC_FAILURE_ON_COMPONENT_0XBF((short) 0x40bf), DIAGNOSTIC_FAILURE_ON_COMPONENT_0XC0((short) 0x40c0), DIAGNOSTIC_FAILURE_ON_COMPONENT_0XC1((short) 0x40c1), DIAGNOSTIC_FAILURE_ON_COMPONENT_0XC2((short) 0x40c2), DIAGNOSTIC_FAILURE_ON_COMPONENT_0XC3((short) 0x40c3), DIAGNOSTIC_FAILURE_ON_COMPONENT_0XC4((short) 0x40c4), DIAGNOSTIC_FAILURE_ON_COMPONENT_0XC5((short) 0x40c5), DIAGNOSTIC_FAILURE_ON_COMPONENT_0XC6((short) 0x40c6), DIAGNOSTIC_FAILURE_ON_COMPONENT_0XC7((short) 0x40c7), DIAGNOSTIC_FAILURE_ON_COMPONENT_0XC8((short) 0x40c8), DIAGNOSTIC_FAILURE_ON_COMPONENT_0XC9((short) 0x40c9), DIAGNOSTIC_FAILURE_ON_COMPONENT_0XCA((short) 0x40ca), DIAGNOSTIC_FAILURE_ON_COMPONENT_0XCB((short) 0x40cb), DIAGNOSTIC_FAILURE_ON_COMPONENT_0XCC((short) 0x40cc), DIAGNOSTIC_FAILURE_ON_COMPONENT_0XCD((short) 0x40cd), DIAGNOSTIC_FAILURE_ON_COMPONENT_0XCE((short) 0x40ce), DIAGNOSTIC_FAILURE_ON_COMPONENT_0XCF((short) 0x40cf), DIAGNOSTIC_FAILURE_ON_COMPONENT_0XD0((short) 0x40d0), DIAGNOSTIC_FAILURE_ON_COMPONENT_0XD1((short) 0x40d1), DIAGNOSTIC_FAILURE_ON_COMPONENT_0XD2((short) 0x40d2), DIAGNOSTIC_FAILURE_ON_COMPONENT_0XD3((short) 0x40d3), DIAGNOSTIC_FAILURE_ON_COMPONENT_0XD4((short) 0x40d4), DIAGNOSTIC_FAILURE_ON_COMPONENT_0XD5((short) 0x40d5), DIAGNOSTIC_FAILURE_ON_COMPONENT_0XD6((short) 0x40d6), DIAGNOSTIC_FAILURE_ON_COMPONENT_0XD7((short) 0x40d7), DIAGNOSTIC_FAILURE_ON_COMPONENT_0XD8((short) 0x40d8), DIAGNOSTIC_FAILURE_ON_COMPONENT_0XD9((short) 0x40d9), DIAGNOSTIC_FAILURE_ON_COMPONENT_0XDA((short) 0x40da), DIAGNOSTIC_FAILURE_ON_COMPONENT_0XDB((short) 0x40db), DIAGNOSTIC_FAILURE_ON_COMPONENT_0XDC((short) 0x40dc), DIAGNOSTIC_FAILURE_ON_COMPONENT_0XDD((short) 0x40dd), DIAGNOSTIC_FAILURE_ON_COMPONENT_0XDE((short) 0x40de), DIAGNOSTIC_FAILURE_ON_COMPONENT_0XDF((short) 0x40df), DIAGNOSTIC_FAILURE_ON_COMPONENT_0XE0((short) 0x40e0), DIAGNOSTIC_FAILURE_ON_COMPONENT_0XE1((short) 0x40e1), DIAGNOSTIC_FAILURE_ON_COMPONENT_0XE2((short) 0x40e2), DIAGNOSTIC_FAILURE_ON_COMPONENT_0XE3((short) 0x40e3), DIAGNOSTIC_FAILURE_ON_COMPONENT_0XE4((short) 0x40e4), DIAGNOSTIC_FAILURE_ON_COMPONENT_0XE5((short) 0x40e5), DIAGNOSTIC_FAILURE_ON_COMPONENT_0XE6((short) 0x40e6), DIAGNOSTIC_FAILURE_ON_COMPONENT_0XE7((short) 0x40e7), DIAGNOSTIC_FAILURE_ON_COMPONENT_0XE8((short) 0x40e8), DIAGNOSTIC_FAILURE_ON_COMPONENT_0XE9((short) 0x40e9), DIAGNOSTIC_FAILURE_ON_COMPONENT_0XEA((short) 0x40ea), DIAGNOSTIC_FAILURE_ON_COMPONENT_0XEB((short) 0x40eb), DIAGNOSTIC_FAILURE_ON_COMPONENT_0XEC((short) 0x40ec), DIAGNOSTIC_FAILURE_ON_COMPONENT_0XED((short) 0x40ed), DIAGNOSTIC_FAILURE_ON_COMPONENT_0XEE((short) 0x40ee), DIAGNOSTIC_FAILURE_ON_COMPONENT_0XEF((short) 0x40ef), DIAGNOSTIC_FAILURE_ON_COMPONENT_0XF0((short) 0x40f0), DIAGNOSTIC_FAILURE_ON_COMPONENT_0XF1((short) 0x40f1), DIAGNOSTIC_FAILURE_ON_COMPONENT_0XF2((short) 0x40f2), DIAGNOSTIC_FAILURE_ON_COMPONENT_0XF3((short) 0x40f3), DIAGNOSTIC_FAILURE_ON_COMPONENT_0XF4((short) 0x40f4), DIAGNOSTIC_FAILURE_ON_COMPONENT_0XF5((short) 0x40f5), DIAGNOSTIC_FAILURE_ON_COMPONENT_0XF6((short) 0x40f6), DIAGNOSTIC_FAILURE_ON_COMPONENT_0XF7((short) 0x40f7), DIAGNOSTIC_FAILURE_ON_COMPONENT_0XF8((short) 0x40f8), DIAGNOSTIC_FAILURE_ON_COMPONENT_0XF9((short) 0x40f9), DIAGNOSTIC_FAILURE_ON_COMPONENT_0XFA((short) 0x40fa), DIAGNOSTIC_FAILURE_ON_COMPONENT_0XFB((short) 0x40fb), DIAGNOSTIC_FAILURE_ON_COMPONENT_0XFC((short) 0x40fc), DIAGNOSTIC_FAILURE_ON_COMPONENT_0XFD((short) 0x40fd), DIAGNOSTIC_FAILURE_ON_COMPONENT_0XFE((short) 0x40fe), DIAGNOSTIC_FAILURE_ON_COMPONENT_0XFF((short) 0x40ff), ECHO_BUFFER_OVERWRITTEN((short) 0x3f0f), ENCLOSURE_FAILURE((short) 0x3400), ENCLOSURE_SERVICES_CHECKSUM_ERROR((short) 0x3505), ENCLOSURE_SERVICES_FAILURE((short) 0x3500), ENCLOSURE_SERVICES_TRANSFER_FAILURE((short) 0x3503), ENCLOSURE_SERVICES_TRANSFER_REFUSED((short) 0x3504), ENCLOSURE_SERVICES_UNAVAILABLE((short) 0x3502), ERROR_DETECTED_BY_THIRD_PARTY_TEMPORARY_INITIATOR((short) 0x0d00), ERROR_LOG_OVERFLOW((short) 0x0a00), ERROR_TOO_LONG_TO_CORRECT((short) 0x1102), FAILURE_PREDICTION_THRESHOLD_EXCEEDED((short) 0x5d00), FAILURE_PREDICTION_THRESHOLD_EXCEEDED_FALSE((short) 0x5dff), FIRMWARE_IMPENDING_FAILURE_ACCESS_TIMES_TOO_HIGH((short) 0x5d65), FIRMWARE_IMPENDING_FAILURE_CHANNEL_PARAMETRICS((short) 0x5d67), FIRMWARE_IMPENDING_FAILURE_CONTROLLER_DETECTED((short) 0x5d68), FIRMWARE_IMPENDING_FAILURE_DATA_ERROR_RATE_TOO_HIGH((short) 0x5d62), FIRMWARE_IMPENDING_FAILURE_DRIVE_CALIBRATION_RETRY_COUNT((short) 0x5d6c), FIRMWARE_IMPENDING_FAILURE_DRIVE_ERROR_RATE_TOO_HIGH((short) 0x5d61), FIRMWARE_IMPENDING_FAILURE_GENERAL_HARD_DRIVE_FAILURE((short) 0x5d60), FIRMWARE_IMPENDING_FAILURE_SEEK_ERROR_RATE_TOO_HIGH((short) 0x5d63), FIRMWARE_IMPENDING_FAILURE_SEEK_TIME_PERFORMANCE((short) 0x5d6a), FIRMWARE_IMPENDING_FAILURE_SPIN_UP_RETRY_COUNT((short) 0x5d6b), FIRMWARE_IMPENDING_FAILURE_START_UNIT_TIMES_TOO_HIGH((short) 0x5d66), FIRMWARE_IMPENDING_FAILURE_THROUGHPUT_PERFORMANCE((short) 0x5d69), FIRMWARE_IMPENDING_FAILURE_TOO_MANY_BLOCK_REASSIGNS((short) 0x5d64), FORMAT_COMMAND_FAILED((short) 0x3101), GROWN_DEFECT_LIST_NOT_FOUND((short) 0x1c02), HARDWARE_IMPENDING_FAILURE_ACCESS_TIMES_TOO_HIGH((short) 0x5d15), HARDWARE_IMPENDING_FAILURE_CHANNEL_PARAMETRICS((short) 0x5d17), HARDWARE_IMPENDING_FAILURE_CONTROLLER_DETECTED((short) 0x5d18), HARDWARE_IMPENDING_FAILURE_DATA_ERROR_RATE_TOO_HIGH((short) 0x5d12), HARDWARE_IMPENDING_FAILURE_DRIVE_CALIBRATION_RETRY_COUNT((short) 0x5d1c), HARDWARE_IMPENDING_FAILURE_DRIVE_ERROR_RATE_TOO_HIGH((short) 0x5d11), HARDWARE_IMPENDING_FAILURE_GENERAL_HARD_DRIVE_FAILURE((short) 0x5d10), HARDWARE_IMPENDING_FAILURE_SEEK_ERROR_RATE_TOO_HIGH((short) 0x5d13), HARDWARE_IMPENDING_FAILURE_SEEK_TIME_PERFORMANCE((short) 0x5d1a), HARDWARE_IMPENDING_FAILURE_SPIN_UP_RETRY_COUNT((short) 0x5d1b), HARDWARE_IMPENDING_FAILURE_START_UNIT_TIMES_TOO_HIGH((short) 0x5d16), HARDWARE_IMPENDING_FAILURE_THROUGHPUT_PERFORMANCE((short) 0x5d19), HARDWARE_IMPENDING_FAILURE_TOO_MANY_BLOCK_REASSIGNS((short) 0x5d14), HARDWARE_WRITE_PROTECTED((short) 0x2701), HEAD_SELECT_FAULT((short) 0x0904), I_O_PROCESS_TERMINATED((short) 0x0006), ID_CRC_OR_ECC_ERROR((short) 0x1000), IDLE_CONDITION_ACTIVATED_BY_COMMAND((short) 0x5e03), IDLE_CONDITION_ACTIVATED_BY_TIMER((short) 0x5e01), ILLEGAL_FUNCTION((short) 0x2200), IMPLICIT_ASYMMETRIC_ACCESS_STATE_TRANSITION_FAILED((short) 0x2a07), IMPORT_OR_EXPORT_ELEMENT_ACCESSED((short) 0x2801), INCOMPATIBLE_MEDIUM_INSTALLED((short) 0x3000), INCORRECT_COPY_TARGET_DEVICE_TYPE((short) 0x0d03), INFORMATION_UNIT_TOO_LONG((short) 0x0e02), INFORMATION_UNIT_TOO_SHORT((short) 0x0e01), INFORMATION_UNIT_IU_CRC_ERROR_DETECTED((short) 0x4703), INITIATOR_DETECTED_ERROR_MESSAGE_RECEIVED((short) 0x4800), INITIATOR_RESPONSE_TIMEOUT((short) 0x4b06), INLINE_DATA_LENGTH_EXCEEDED((short) 0x260b), INQUIRY_DATA_HAS_CHANGED((short) 0x3f03), INSUFFICIENT_ACCESS_CONTROL_RESOURCES((short) 0x5505), INSUFFICIENT_REGISTRATION_RESOURCES((short) 0x5504), INSUFFICIENT_RESERVATION_RESOURCES((short) 0x5502), INSUFFICIENT_RESOURCES((short) 0x5503), INTERNAL_TARGET_FAILURE((short) 0x4400), INVALID_BITS_IN_IDENTIFY_MESSAGE((short) 0x3d00), INVALID_COMMAND_OPERATION_CODE((short) 0x2000), INVALID_ELEMENT_ADDRESS((short) 0x2101), INVALID_FIELD_IN_CDB((short) 0x2400), INVALID_FIELD_IN_COMMAND_INFORMATION_UNIT((short) 0x0e03), INVALID_FIELD_IN_PARAMETER_LIST((short) 0x2600), INVALID_INFORMATION_UNIT((short) 0x0e00), INVALID_MESSAGE_ERROR((short) 0x4900), INVALID_OPERATION_FOR_COPY_SOURCE_OR_DESTINATION((short) 0x260c), INVALID_PARAMETER_WHILE_PORT_IS_ENABLED((short) 0x260e), INVALID_RELEASE_OF_PERSISTENT_RESERVATION((short) 0x2604), INVALID_TARGET_PORT_TRANSFER_TAG_RECEIVED((short) 0x4b01), NEXUS_LOSS_OCCURRED((short) 0x2907), LOG_COUNTER_AT_MAXIMUM((short) 0x5b02), LOG_EXCEPTION((short) 0x5b00), LOG_LIST_CODES_EXHAUSTED((short) 0x5b03), LOG_PARAMETERS_CHANGED((short) 0x2a02), LOGICAL_BLOCK_ADDRESS_OUT_OF_RANGE((short) 0x2100), LOGICAL_UNIT_COMMUNICATION_CRC_ERROR_ULTRA_DMA_32((short) 0x0803), LOGICAL_UNIT_COMMUNICATION_FAILURE((short) 0x0800), LOGICAL_UNIT_COMMUNICATION_PARITY_ERROR((short) 0x0802), LOGICAL_UNIT_COMMUNICATION_TIME_OUT((short) 0x0801), LOGICAL_UNIT_DOES_NOT_RESPOND_TO_SELECTION((short) 0x0500), LOGICAL_UNIT_FAILED_SELF_CONFIGURATION((short) 0x4c00), LOGICAL_UNIT_FAILED_SELF_TEST((short) 0x3e03), LOGICAL_UNIT_FAILURE((short) 0x3e01), LOGICAL_UNIT_HAS_NOT_SELF_CONFIGURED_YET((short) 0x3e00), LOGICAL_UNIT_IS_IN_PROCESS_OF_BECOMING_READY((short) 0x0401), LOGICAL_UNIT_NOT_ACCESSIBLE_ASYMMETRIC_ACCESS_STATE_TRANSITION((short) 0x040a), LOGICAL_UNIT_NOT_ACCESSIBLE_TARGET_PORT_IN_STANDBY_STATE((short) 0x040b), LOGICAL_UNIT_NOT_ACCESSIBLE_TARGET_PORT_IN_UNAVAILABLE_STATE((short) 0x040c), LOGICAL_UNIT_NOT_READY_AUXILIARY_MEMORY_NOT_ACCESSIBLE((short) 0x0410), LOGICAL_UNIT_NOT_READY_CAUSE_NOT_REPORTABLE((short) 0x0400), LOGICAL_UNIT_NOT_READY_FORMAT_IN_PROGRESS((short) 0x0404), LOGICAL_UNIT_NOT_READY_INITIALIZING_COMMAND_REQUIRED((short) 0x0402), LOGICAL_UNIT_NOT_READY_MANUAL_INTERVENTION_REQUIRED((short) 0x0403), LOGICAL_UNIT_NOT_READY_NOTIFY_REQUIRED((short) 0x0411), LOGICAL_UNIT_NOT_READY_OPERATION_IN_PROGRESS((short) 0x0407), LOGICAL_UNIT_NOT_READY_REBUILD_IN_PROGRESS((short) 0x0405), LOGICAL_UNIT_NOT_READY_RECALCULATION_IN_PROGRESS((short) 0x0406), LOGICAL_UNIT_NOT_READY_SELF_TEST_IN_PROGRESS((short) 0x0409), LOGICAL_UNIT_NOT_SUPPORTED((short) 0x2500), LOGICAL_UNIT_SOFTWARE_WRITE_PROTECTED((short) 0x2702), LOGICAL_UNIT_UNABLE_TO_UPDATE_SELF_TEST_LOG((short) 0x3e04), LOW_POWER_CONDITION_ON((short) 0x5e00), MECHANICAL_POSITIONING_ERROR((short) 0x1501), MEDIA_LOAD_OR_EJECT_FAILED((short) 0x5300), MEDIUM_AUXILIARY_MEMORY_ACCESSIBLE((short) 0x3f11), MEDIUM_DESTINATION_ELEMENT_FULL((short) 0x3b0d), MEDIUM_FORMAT_CORRUPTED((short) 0x3100), MEDIUM_LOADABLE((short) 0x3f10), MEDIUM_MAGAZINE_INSERTED((short) 0x3b13), MEDIUM_MAGAZINE_LOCKED((short) 0x3b14), MEDIUM_MAGAZINE_NOT_ACCESSIBLE((short) 0x3b11), MEDIUM_MAGAZINE_REMOVED((short) 0x3b12), MEDIUM_MAGAZINE_UNLOCKED((short) 0x3b15), MEDIUM_NOT_PRESENT((short) 0x3a00), MEDIUM_NOT_PRESENT_LOADABLE((short) 0x3a03), MEDIUM_NOT_PRESENT_MEDIUM_AUXILIARY_MEMORY_ACCESSIBLE((short) 0x3a04), MEDIUM_NOT_PRESENT_TRAY_CLOSED((short) 0x3a01), MEDIUM_NOT_PRESENT_TRAY_OPEN((short) 0x3a02), MEDIUM_REMOVAL_PREVENTED((short) 0x5302), MEDIUM_SOURCE_ELEMENT_EMPTY((short) 0x3b0e), MESSAGE_ERROR((short) 0x4300), MICROCODE_HAS_BEEN_CHANGED((short) 0x3f01), MISCOMPARE_DURING_VERIFY_OPERATION((short) 0x1d00), MISCORRECTED_ERROR((short) 0x110a), MODE_PARAMETERS_CHANGED((short) 0x2a01), MULTIPLE_PERIPHERAL_DEVICES_SELECTED((short) 0x0700), MULTIPLE_READ_ERRORS((short) 0x1103), NAK_RECEIVED((short) 0x4b04), NO_ADDITIONAL_SENSE_INFORMATION((short) 0x0000), NO_DEFECT_SPARE_LOCATION_AVAILABLE((short) 0x3200), NO_INDEX_SECTOR_SIGNAL((short) 0x0100), NO_REFERENCE_POSITION_FOUND((short) 0x0600), NO_SEEK_COMPLETE((short) 0x0200), NOT_READY_TO_READY_CHANGE_MEDIUM_MAY_HAVE_CHANGED((short) 0x2800), OPERATION_IN_PROGRESS((short) 0x0016), OPERATOR_MEDIUM_REMOVAL_REQUEST((short) 0x5a01), OPERATOR_REQUEST_OR_STATE_CHANGE_INPUT((short) 0x5a00), OPERATOR_SELECTED_WRITE_PERMIT((short) 0x5a03), OPERATOR_SELECTED_WRITE_PROTECT((short) 0x5a02), OVERLAPPED_COMMANDS_ATTEMPTED((short) 0x4e00), PARAMETER_LIST_LENGTH_ERROR((short) 0x1a00), PARAMETER_NOT_SUPPORTED((short) 0x2601), PARAMETER_VALUE_INVALID((short) 0x2602), PARAMETERS_CHANGED((short) 0x2a00), PARTIAL_DEFECT_LIST_TRANSFER((short) 0x1f00), PERIPHERAL_DEVICE_WRITE_FAULT((short) 0x0300), PHY_TEST_FUNCTION_IN_PROGRESS((short) 0x4706), POSITIONING_ERROR_DETECTED_BY_READ_OF_MEDIUM((short) 0x1502), POWER_ON_OCCURRED((short) 0x2901), POWER_ON_RESET_OR_BUS_DEVICE_RESET_OCCURRED((short) 0x2900), POWER_ON_OR_SELF_TEST_FAILURE((short) 0x4200), PREVIOUS_BUSY_STATUS((short) 0x2c07), PREVIOUS_RESERVATION_CONFLICT_STATUS((short) 0x2c09), PREVIOUS_TASK_SET_FULL_STATUS((short) 0x2c08), PRIMARY_DEFECT_LIST_NOT_FOUND((short) 0x1c01), PRIORITY_CHANGED((short) 0x2a08), PROTOCOL_SERVICE_CRC_ERROR((short) 0x4705), RAM_FAILURE((short) 0x4000), RANDOM_POSITIONING_ERROR((short) 0x1500), READ_ERROR_FAILED_RETRANSMISSION_REQUEST((short) 0x1113), READ_RETRIES_EXHAUSTED((short) 0x1101), RECORD_NOT_FOUND((short) 0x1401), RECORD_NOT_FOUND_DATA_AUTO_REALLOCATED((short) 0x1406), RECORD_NOT_FOUND_RECOMMEND_REASSIGNMENT((short) 0x1405), RECORDED_ENTITY_NOT_FOUND((short) 0x1400), RECOVERED_DATA_DATA_AUTO_REALLOCATED((short) 0x1802), RECOVERED_DATA_RECOMMEND_REASSIGNMENT((short) 0x1805), RECOVERED_DATA_RECOMMEND_REWRITE((short) 0x1806), RECOVERED_DATA_USING_PREVIOUS_SECTOR_ID((short) 0x1705), RECOVERED_DATA_WITH_ECC_DATA_REWRITTEN((short) 0x1807), RECOVERED_DATA_WITH_ERROR_CORRECTION_AND_RETRIES_APPLIED((short) 0x1801), RECOVERED_DATA_WITH_ERROR_CORRECTION_APPLIED((short) 0x1800), RECOVERED_DATA_WITH_NEGATIVE_HEAD_OFFSET((short) 0x1703), RECOVERED_DATA_WITH_NO_ERROR_CORRECTION_APPLIED((short) 0x1700), RECOVERED_DATA_WITH_POSITIVE_HEAD_OFFSET((short) 0x1702), RECOVERED_DATA_WITH_RETRIES((short) 0x1701), RECOVERED_DATA_WITHOUT_ECC_DATA_AUTO_REALLOCATED((short) 0x1706), RECOVERED_DATA_WITHOUT_ECC_DATA_REWRITTEN((short) 0x1709), RECOVERED_DATA_WITHOUT_ECC_RECOMMEND_REASSIGNMENT((short) 0x1707), RECOVERED_DATA_WITHOUT_ECC_RECOMMEND_REWRITE((short) 0x1708), RECOVERED_ID_WITH_ECC_CORRECTION((short) 0x1e00), REDUNDANCY_GROUP_CREATED_OR_MODIFIED((short) 0x3f06), REDUNDANCY_GROUP_DELETED((short) 0x3f07), REGISTRATIONS_PREEMPTED((short) 0x2a05), REPORTED_LUNS_DATA_HAS_CHANGED((short) 0x3f0e), RESERVATIONS_PREEMPTED((short) 0x2a03), RESERVATIONS_RELEASED((short) 0x2a04), ROUNDED_PARAMETER((short) 0x3700), RPL_STATUS_CHANGE((short) 0x5c00), SAVING_PARAMETERS_NOT_SUPPORTED((short) 0x3900), SCSI_BUS_RESET_OCCURRED((short) 0x2902), SCSI_PARITY_ERROR((short) 0x4700), SCSI_PARITY_ERROR_DETECTED_DURING_ST_DATA_PHASE((short) 0x4702), SELECT_OR_RESELECT_FAILURE((short) 0x4500), SEQUENTIAL_POSITIONING_ERROR((short) 0x3b00), SERVO_IMPENDING_FAILURE_ACCESS_TIMES_TOO_HIGH((short) 0x5d45), SERVO_IMPENDING_FAILURE_CHANNEL_PARAMETRICS((short) 0x5d47), SERVO_IMPENDING_FAILURE_CONTROLLER_DETECTED((short) 0x5d48), SERVO_IMPENDING_FAILURE_DATA_ERROR_RATE_TOO_HIGH((short) 0x5d42), SERVO_IMPENDING_FAILURE_DRIVE_CALIBRATION_RETRY_COUNT((short) 0x5d4c), SERVO_IMPENDING_FAILURE_DRIVE_ERROR_RATE_TOO_HIGH((short) 0x5d41), SERVO_IMPENDING_FAILURE_GENERAL_HARD_DRIVE_FAILURE((short) 0x5d40), SERVO_IMPENDING_FAILURE_SEEK_ERROR_RATE_TOO_HIGH((short) 0x5d43), SERVO_IMPENDING_FAILURE_SEEK_TIME_PERFORMANCE((short) 0x5d4a), SERVO_IMPENDING_FAILURE_SPIN_UP_RETRY_COUNT((short) 0x5d4b), SERVO_IMPENDING_FAILURE_START_UNIT_TIMES_TOO_HIGH((short) 0x5d46), SERVO_IMPENDING_FAILURE_THROUGHPUT_PERFORMANCE((short) 0x5d49), SERVO_IMPENDING_FAILURE_TOO_MANY_BLOCK_REASSIGNS((short) 0x5d44), SET_TARGET_PORT_GROUPS_COMMAND_FAILED((short) 0x670a), SOME_COMMANDS_CLEARED_BY_ISCSI_PROTOCOL_EVENT((short) 0x477f), SPARE_CREATED_OR_MODIFIED((short) 0x3f08), SPARE_DELETED((short) 0x3f09), SPINDLE_IMPENDING_FAILURE_ACCESS_TIMES_TOO_HIGH((short) 0x5d55), SPINDLE_IMPENDING_FAILURE_CHANNEL_PARAMETRICS((short) 0x5d57), SPINDLE_IMPENDING_FAILURE_CONTROLLER_DETECTED((short) 0x5d58), SPINDLE_IMPENDING_FAILURE_DATA_ERROR_RATE_TOO_HIGH((short) 0x5d52), SPINDLE_IMPENDING_FAILURE_DRIVE_CALIBRATION_RETRY_COUNT((short) 0x5d5c), SPINDLE_IMPENDING_FAILURE_DRIVE_ERROR_RATE_TOO_HIGH((short) 0x5d51), SPINDLE_IMPENDING_FAILURE_GENERAL_HARD_DRIVE_FAILURE((short) 0x5d50), SPINDLE_IMPENDING_FAILURE_SEEK_ERROR_RATE_TOO_HIGH((short) 0x5d53), SPINDLE_IMPENDING_FAILURE_SEEK_TIME_PERFORMANCE((short) 0x5d5a), SPINDLE_IMPENDING_FAILURE_SPIN_UP_RETRY_COUNT((short) 0x5d5b), SPINDLE_IMPENDING_FAILURE_START_UNIT_TIMES_TOO_HIGH((short) 0x5d56), SPINDLE_IMPENDING_FAILURE_THROUGHPUT_PERFORMANCE((short) 0x5d59), SPINDLE_IMPENDING_FAILURE_TOO_MANY_BLOCK_REASSIGNS((short) 0x5d54), SPINDLES_NOT_SYNCHRONIZED((short) 0x5c02), SPINDLES_SYNCHRONIZED((short) 0x5c01), STANDBY_CONDITION_ACTIVATED_BY_COMMAND((short) 0x5e04), STANDBY_CONDITION_ACTIVATED_BY_TIMER((short) 0x5e02), SYNCHRONOUS_DATA_TRANSFER_ERROR((short) 0x1b00), SYSTEM_BUFFER_FULL((short) 0x5501),
27      /*
28       * TODO TAGGED_OVERLAPPED_COMMANDS((short)0x4dNN) NN stands for the Command Identifier (Task Tag) The only Transport
29       * Protocol with a Command Identifier length <= 8 bits is ADT-2 with a length of 3 bits. So, theoretically, 0x0 <=
30       * NN <= 0x7 should be enough, but just to be sure the full range 0-255 is used here. ADT-2 = Automation/Drive
31       * Interface Transport Protocol 2
32       */
33      TAGGED_OVERLAPPED_COMMANDS_0X00((short) 0x4d00), TAGGED_OVERLAPPED_COMMANDS_0X01((short) 0x4d01), TAGGED_OVERLAPPED_COMMANDS_0X02((short) 0x4d02), TAGGED_OVERLAPPED_COMMANDS_0X03((short) 0x4d03), TAGGED_OVERLAPPED_COMMANDS_0X04((short) 0x4d04), TAGGED_OVERLAPPED_COMMANDS_0X05((short) 0x4d05), TAGGED_OVERLAPPED_COMMANDS_0X06((short) 0x4d06), TAGGED_OVERLAPPED_COMMANDS_0X07((short) 0x4d07), TAGGED_OVERLAPPED_COMMANDS_0X08((short) 0x4d08), TAGGED_OVERLAPPED_COMMANDS_0X09((short) 0x4d09), TAGGED_OVERLAPPED_COMMANDS_0X0A((short) 0x4d0a), TAGGED_OVERLAPPED_COMMANDS_0X0B((short) 0x4d0b), TAGGED_OVERLAPPED_COMMANDS_0X0C((short) 0x4d0c), TAGGED_OVERLAPPED_COMMANDS_0X0D((short) 0x4d0d), TAGGED_OVERLAPPED_COMMANDS_0X0E((short) 0x4d0e), TAGGED_OVERLAPPED_COMMANDS_0X0F((short) 0x4d0f), TAGGED_OVERLAPPED_COMMANDS_0X10((short) 0x4d10), TAGGED_OVERLAPPED_COMMANDS_0X11((short) 0x4d11), TAGGED_OVERLAPPED_COMMANDS_0X12((short) 0x4d12), TAGGED_OVERLAPPED_COMMANDS_0X13((short) 0x4d13), TAGGED_OVERLAPPED_COMMANDS_0X14((short) 0x4d14), TAGGED_OVERLAPPED_COMMANDS_0X15((short) 0x4d15), TAGGED_OVERLAPPED_COMMANDS_0X16((short) 0x4d16), TAGGED_OVERLAPPED_COMMANDS_0X17((short) 0x4d17), TAGGED_OVERLAPPED_COMMANDS_0X18((short) 0x4d18), TAGGED_OVERLAPPED_COMMANDS_0X19((short) 0x4d19), TAGGED_OVERLAPPED_COMMANDS_0X1A((short) 0x4d1a), TAGGED_OVERLAPPED_COMMANDS_0X1B((short) 0x4d1b), TAGGED_OVERLAPPED_COMMANDS_0X1C((short) 0x4d1c), TAGGED_OVERLAPPED_COMMANDS_0X1D((short) 0x4d1d), TAGGED_OVERLAPPED_COMMANDS_0X1E((short) 0x4d1e), TAGGED_OVERLAPPED_COMMANDS_0X1F((short) 0x4d1f), TAGGED_OVERLAPPED_COMMANDS_0X20((short) 0x4d20), TAGGED_OVERLAPPED_COMMANDS_0X21((short) 0x4d21), TAGGED_OVERLAPPED_COMMANDS_0X22((short) 0x4d22), TAGGED_OVERLAPPED_COMMANDS_0X23((short) 0x4d23), TAGGED_OVERLAPPED_COMMANDS_0X24((short) 0x4d24), TAGGED_OVERLAPPED_COMMANDS_0X25((short) 0x4d25), TAGGED_OVERLAPPED_COMMANDS_0X26((short) 0x4d26), TAGGED_OVERLAPPED_COMMANDS_0X27((short) 0x4d27), TAGGED_OVERLAPPED_COMMANDS_0X28((short) 0x4d28), TAGGED_OVERLAPPED_COMMANDS_0X29((short) 0x4d29), TAGGED_OVERLAPPED_COMMANDS_0X2A((short) 0x4d2a), TAGGED_OVERLAPPED_COMMANDS_0X2B((short) 0x4d2b), TAGGED_OVERLAPPED_COMMANDS_0X2C((short) 0x4d2c), TAGGED_OVERLAPPED_COMMANDS_0X2D((short) 0x4d2d), TAGGED_OVERLAPPED_COMMANDS_0X2E((short) 0x4d2e), TAGGED_OVERLAPPED_COMMANDS_0X2F((short) 0x4d2f), TAGGED_OVERLAPPED_COMMANDS_0X30((short) 0x4d30), TAGGED_OVERLAPPED_COMMANDS_0X31((short) 0x4d31), TAGGED_OVERLAPPED_COMMANDS_0X32((short) 0x4d32), TAGGED_OVERLAPPED_COMMANDS_0X33((short) 0x4d33), TAGGED_OVERLAPPED_COMMANDS_0X34((short) 0x4d34), TAGGED_OVERLAPPED_COMMANDS_0X35((short) 0x4d35), TAGGED_OVERLAPPED_COMMANDS_0X36((short) 0x4d36), TAGGED_OVERLAPPED_COMMANDS_0X37((short) 0x4d37), TAGGED_OVERLAPPED_COMMANDS_0X38((short) 0x4d38), TAGGED_OVERLAPPED_COMMANDS_0X39((short) 0x4d39), TAGGED_OVERLAPPED_COMMANDS_0X3A((short) 0x4d3a), TAGGED_OVERLAPPED_COMMANDS_0X3B((short) 0x4d3b), TAGGED_OVERLAPPED_COMMANDS_0X3C((short) 0x4d3c), TAGGED_OVERLAPPED_COMMANDS_0X3D((short) 0x4d3d), TAGGED_OVERLAPPED_COMMANDS_0X3E((short) 0x4d3e), TAGGED_OVERLAPPED_COMMANDS_0X3F((short) 0x4d3f), TAGGED_OVERLAPPED_COMMANDS_0X40((short) 0x4d40), TAGGED_OVERLAPPED_COMMANDS_0X41((short) 0x4d41), TAGGED_OVERLAPPED_COMMANDS_0X42((short) 0x4d42), TAGGED_OVERLAPPED_COMMANDS_0X43((short) 0x4d43), TAGGED_OVERLAPPED_COMMANDS_0X44((short) 0x4d44), TAGGED_OVERLAPPED_COMMANDS_0X45((short) 0x4d45), TAGGED_OVERLAPPED_COMMANDS_0X46((short) 0x4d46), TAGGED_OVERLAPPED_COMMANDS_0X47((short) 0x4d47), TAGGED_OVERLAPPED_COMMANDS_0X48((short) 0x4d48), TAGGED_OVERLAPPED_COMMANDS_0X49((short) 0x4d49), TAGGED_OVERLAPPED_COMMANDS_0X4A((short) 0x4d4a), TAGGED_OVERLAPPED_COMMANDS_0X4B((short) 0x4d4b), TAGGED_OVERLAPPED_COMMANDS_0X4C((short) 0x4d4c), TAGGED_OVERLAPPED_COMMANDS_0X4D((short) 0x4d4d), TAGGED_OVERLAPPED_COMMANDS_0X4E((short) 0x4d4e), TAGGED_OVERLAPPED_COMMANDS_0X4F((short) 0x4d4f), TAGGED_OVERLAPPED_COMMANDS_0X50((short) 0x4d50), TAGGED_OVERLAPPED_COMMANDS_0X51((short) 0x4d51), TAGGED_OVERLAPPED_COMMANDS_0X52((short) 0x4d52), TAGGED_OVERLAPPED_COMMANDS_0X53((short) 0x4d53), TAGGED_OVERLAPPED_COMMANDS_0X54((short) 0x4d54), TAGGED_OVERLAPPED_COMMANDS_0X55((short) 0x4d55), TAGGED_OVERLAPPED_COMMANDS_0X56((short) 0x4d56), TAGGED_OVERLAPPED_COMMANDS_0X57((short) 0x4d57), TAGGED_OVERLAPPED_COMMANDS_0X58((short) 0x4d58), TAGGED_OVERLAPPED_COMMANDS_0X59((short) 0x4d59), TAGGED_OVERLAPPED_COMMANDS_0X5A((short) 0x4d5a), TAGGED_OVERLAPPED_COMMANDS_0X5B((short) 0x4d5b), TAGGED_OVERLAPPED_COMMANDS_0X5C((short) 0x4d5c), TAGGED_OVERLAPPED_COMMANDS_0X5D((short) 0x4d5d), TAGGED_OVERLAPPED_COMMANDS_0X5E((short) 0x4d5e), TAGGED_OVERLAPPED_COMMANDS_0X5F((short) 0x4d5f), TAGGED_OVERLAPPED_COMMANDS_0X60((short) 0x4d60), TAGGED_OVERLAPPED_COMMANDS_0X61((short) 0x4d61), TAGGED_OVERLAPPED_COMMANDS_0X62((short) 0x4d62), TAGGED_OVERLAPPED_COMMANDS_0X63((short) 0x4d63), TAGGED_OVERLAPPED_COMMANDS_0X64((short) 0x4d64), TAGGED_OVERLAPPED_COMMANDS_0X65((short) 0x4d65), TAGGED_OVERLAPPED_COMMANDS_0X66((short) 0x4d66), TAGGED_OVERLAPPED_COMMANDS_0X67((short) 0x4d67), TAGGED_OVERLAPPED_COMMANDS_0X68((short) 0x4d68), TAGGED_OVERLAPPED_COMMANDS_0X69((short) 0x4d69), TAGGED_OVERLAPPED_COMMANDS_0X6A((short) 0x4d6a), TAGGED_OVERLAPPED_COMMANDS_0X6B((short) 0x4d6b), TAGGED_OVERLAPPED_COMMANDS_0X6C((short) 0x4d6c), TAGGED_OVERLAPPED_COMMANDS_0X6D((short) 0x4d6d), TAGGED_OVERLAPPED_COMMANDS_0X6E((short) 0x4d6e), TAGGED_OVERLAPPED_COMMANDS_0X6F((short) 0x4d6f), TAGGED_OVERLAPPED_COMMANDS_0X70((short) 0x4d70), TAGGED_OVERLAPPED_COMMANDS_0X71((short) 0x4d71), TAGGED_OVERLAPPED_COMMANDS_0X72((short) 0x4d72), TAGGED_OVERLAPPED_COMMANDS_0X73((short) 0x4d73), TAGGED_OVERLAPPED_COMMANDS_0X74((short) 0x4d74), TAGGED_OVERLAPPED_COMMANDS_0X75((short) 0x4d75), TAGGED_OVERLAPPED_COMMANDS_0X76((short) 0x4d76), TAGGED_OVERLAPPED_COMMANDS_0X77((short) 0x4d77), TAGGED_OVERLAPPED_COMMANDS_0X78((short) 0x4d78), TAGGED_OVERLAPPED_COMMANDS_0X79((short) 0x4d79), TAGGED_OVERLAPPED_COMMANDS_0X7A((short) 0x4d7a), TAGGED_OVERLAPPED_COMMANDS_0X7B((short) 0x4d7b), TAGGED_OVERLAPPED_COMMANDS_0X7C((short) 0x4d7c), TAGGED_OVERLAPPED_COMMANDS_0X7D((short) 0x4d7d), TAGGED_OVERLAPPED_COMMANDS_0X7E((short) 0x4d7e), TAGGED_OVERLAPPED_COMMANDS_0X7F((short) 0x4d7f), TAGGED_OVERLAPPED_COMMANDS_0X80((short) 0x4d80), TAGGED_OVERLAPPED_COMMANDS_0X81((short) 0x4d81), TAGGED_OVERLAPPED_COMMANDS_0X82((short) 0x4d82), TAGGED_OVERLAPPED_COMMANDS_0X83((short) 0x4d83), TAGGED_OVERLAPPED_COMMANDS_0X84((short) 0x4d84), TAGGED_OVERLAPPED_COMMANDS_0X85((short) 0x4d85), TAGGED_OVERLAPPED_COMMANDS_0X86((short) 0x4d86), TAGGED_OVERLAPPED_COMMANDS_0X87((short) 0x4d87), TAGGED_OVERLAPPED_COMMANDS_0X88((short) 0x4d88), TAGGED_OVERLAPPED_COMMANDS_0X89((short) 0x4d89), TAGGED_OVERLAPPED_COMMANDS_0X8A((short) 0x4d8a), TAGGED_OVERLAPPED_COMMANDS_0X8B((short) 0x4d8b), TAGGED_OVERLAPPED_COMMANDS_0X8C((short) 0x4d8c), TAGGED_OVERLAPPED_COMMANDS_0X8D((short) 0x4d8d), TAGGED_OVERLAPPED_COMMANDS_0X8E((short) 0x4d8e), TAGGED_OVERLAPPED_COMMANDS_0X8F((short) 0x4d8f), TAGGED_OVERLAPPED_COMMANDS_0X90((short) 0x4d90), TAGGED_OVERLAPPED_COMMANDS_0X91((short) 0x4d91), TAGGED_OVERLAPPED_COMMANDS_0X92((short) 0x4d92), TAGGED_OVERLAPPED_COMMANDS_0X93((short) 0x4d93), TAGGED_OVERLAPPED_COMMANDS_0X94((short) 0x4d94), TAGGED_OVERLAPPED_COMMANDS_0X95((short) 0x4d95), TAGGED_OVERLAPPED_COMMANDS_0X96((short) 0x4d96), TAGGED_OVERLAPPED_COMMANDS_0X97((short) 0x4d97), TAGGED_OVERLAPPED_COMMANDS_0X98((short) 0x4d98), TAGGED_OVERLAPPED_COMMANDS_0X99((short) 0x4d99), TAGGED_OVERLAPPED_COMMANDS_0X9A((short) 0x4d9a), TAGGED_OVERLAPPED_COMMANDS_0X9B((short) 0x4d9b), TAGGED_OVERLAPPED_COMMANDS_0X9C((short) 0x4d9c), TAGGED_OVERLAPPED_COMMANDS_0X9D((short) 0x4d9d), TAGGED_OVERLAPPED_COMMANDS_0X9E((short) 0x4d9e), TAGGED_OVERLAPPED_COMMANDS_0X9F((short) 0x4d9f), TAGGED_OVERLAPPED_COMMANDS_0XA0((short) 0x4da0), TAGGED_OVERLAPPED_COMMANDS_0XA1((short) 0x4da1), TAGGED_OVERLAPPED_COMMANDS_0XA2((short) 0x4da2), TAGGED_OVERLAPPED_COMMANDS_0XA3((short) 0x4da3), TAGGED_OVERLAPPED_COMMANDS_0XA4((short) 0x4da4), TAGGED_OVERLAPPED_COMMANDS_0XA5((short) 0x4da5), TAGGED_OVERLAPPED_COMMANDS_0XA6((short) 0x4da6), TAGGED_OVERLAPPED_COMMANDS_0XA7((short) 0x4da7), TAGGED_OVERLAPPED_COMMANDS_0XA8((short) 0x4da8), TAGGED_OVERLAPPED_COMMANDS_0XA9((short) 0x4da9), TAGGED_OVERLAPPED_COMMANDS_0XAA((short) 0x4daa), TAGGED_OVERLAPPED_COMMANDS_0XAB((short) 0x4dab), TAGGED_OVERLAPPED_COMMANDS_0XAC((short) 0x4dac), TAGGED_OVERLAPPED_COMMANDS_0XAD((short) 0x4dad), TAGGED_OVERLAPPED_COMMANDS_0XAE((short) 0x4dae), TAGGED_OVERLAPPED_COMMANDS_0XAF((short) 0x4daf), TAGGED_OVERLAPPED_COMMANDS_0XB0((short) 0x4db0), TAGGED_OVERLAPPED_COMMANDS_0XB1((short) 0x4db1), TAGGED_OVERLAPPED_COMMANDS_0XB2((short) 0x4db2), TAGGED_OVERLAPPED_COMMANDS_0XB3((short) 0x4db3), TAGGED_OVERLAPPED_COMMANDS_0XB4((short) 0x4db4), TAGGED_OVERLAPPED_COMMANDS_0XB5((short) 0x4db5), TAGGED_OVERLAPPED_COMMANDS_0XB6((short) 0x4db6), TAGGED_OVERLAPPED_COMMANDS_0XB7((short) 0x4db7), TAGGED_OVERLAPPED_COMMANDS_0XB8((short) 0x4db8), TAGGED_OVERLAPPED_COMMANDS_0XB9((short) 0x4db9), TAGGED_OVERLAPPED_COMMANDS_0XBA((short) 0x4dba), TAGGED_OVERLAPPED_COMMANDS_0XBB((short) 0x4dbb), TAGGED_OVERLAPPED_COMMANDS_0XBC((short) 0x4dbc), TAGGED_OVERLAPPED_COMMANDS_0XBD((short) 0x4dbd), TAGGED_OVERLAPPED_COMMANDS_0XBE((short) 0x4dbe), TAGGED_OVERLAPPED_COMMANDS_0XBF((short) 0x4dbf), TAGGED_OVERLAPPED_COMMANDS_0XC0((short) 0x4dc0), TAGGED_OVERLAPPED_COMMANDS_0XC1((short) 0x4dc1), TAGGED_OVERLAPPED_COMMANDS_0XC2((short) 0x4dc2), TAGGED_OVERLAPPED_COMMANDS_0XC3((short) 0x4dc3), TAGGED_OVERLAPPED_COMMANDS_0XC4((short) 0x4dc4), TAGGED_OVERLAPPED_COMMANDS_0XC5((short) 0x4dc5), TAGGED_OVERLAPPED_COMMANDS_0XC6((short) 0x4dc6), TAGGED_OVERLAPPED_COMMANDS_0XC7((short) 0x4dc7), TAGGED_OVERLAPPED_COMMANDS_0XC8((short) 0x4dc8), TAGGED_OVERLAPPED_COMMANDS_0XC9((short) 0x4dc9), TAGGED_OVERLAPPED_COMMANDS_0XCA((short) 0x4dca), TAGGED_OVERLAPPED_COMMANDS_0XCB((short) 0x4dcb), TAGGED_OVERLAPPED_COMMANDS_0XCC((short) 0x4dcc), TAGGED_OVERLAPPED_COMMANDS_0XCD((short) 0x4dcd), TAGGED_OVERLAPPED_COMMANDS_0XCE((short) 0x4dce), TAGGED_OVERLAPPED_COMMANDS_0XCF((short) 0x4dcf), TAGGED_OVERLAPPED_COMMANDS_0XD0((short) 0x4dd0), TAGGED_OVERLAPPED_COMMANDS_0XD1((short) 0x4dd1), TAGGED_OVERLAPPED_COMMANDS_0XD2((short) 0x4dd2), TAGGED_OVERLAPPED_COMMANDS_0XD3((short) 0x4dd3), TAGGED_OVERLAPPED_COMMANDS_0XD4((short) 0x4dd4), TAGGED_OVERLAPPED_COMMANDS_0XD5((short) 0x4dd5), TAGGED_OVERLAPPED_COMMANDS_0XD6((short) 0x4dd6), TAGGED_OVERLAPPED_COMMANDS_0XD7((short) 0x4dd7), TAGGED_OVERLAPPED_COMMANDS_0XD8((short) 0x4dd8), TAGGED_OVERLAPPED_COMMANDS_0XD9((short) 0x4dd9), TAGGED_OVERLAPPED_COMMANDS_0XDA((short) 0x4dda), TAGGED_OVERLAPPED_COMMANDS_0XDB((short) 0x4ddb), TAGGED_OVERLAPPED_COMMANDS_0XDC((short) 0x4ddc), TAGGED_OVERLAPPED_COMMANDS_0XDD((short) 0x4ddd), TAGGED_OVERLAPPED_COMMANDS_0XDE((short) 0x4dde), TAGGED_OVERLAPPED_COMMANDS_0XDF((short) 0x4ddf), TAGGED_OVERLAPPED_COMMANDS_0XE0((short) 0x4de0), TAGGED_OVERLAPPED_COMMANDS_0XE1((short) 0x4de1), TAGGED_OVERLAPPED_COMMANDS_0XE2((short) 0x4de2), TAGGED_OVERLAPPED_COMMANDS_0XE3((short) 0x4de3), TAGGED_OVERLAPPED_COMMANDS_0XE4((short) 0x4de4), TAGGED_OVERLAPPED_COMMANDS_0XE5((short) 0x4de5), TAGGED_OVERLAPPED_COMMANDS_0XE6((short) 0x4de6), TAGGED_OVERLAPPED_COMMANDS_0XE7((short) 0x4de7), TAGGED_OVERLAPPED_COMMANDS_0XE8((short) 0x4de8), TAGGED_OVERLAPPED_COMMANDS_0XE9((short) 0x4de9), TAGGED_OVERLAPPED_COMMANDS_0XEA((short) 0x4dea), TAGGED_OVERLAPPED_COMMANDS_0XEB((short) 0x4deb), TAGGED_OVERLAPPED_COMMANDS_0XEC((short) 0x4dec), TAGGED_OVERLAPPED_COMMANDS_0XED((short) 0x4ded), TAGGED_OVERLAPPED_COMMANDS_0XEE((short) 0x4dee), TAGGED_OVERLAPPED_COMMANDS_0XEF((short) 0x4def), TAGGED_OVERLAPPED_COMMANDS_0XF0((short) 0x4df0), TAGGED_OVERLAPPED_COMMANDS_0XF1((short) 0x4df1), TAGGED_OVERLAPPED_COMMANDS_0XF2((short) 0x4df2), TAGGED_OVERLAPPED_COMMANDS_0XF3((short) 0x4df3), TAGGED_OVERLAPPED_COMMANDS_0XF4((short) 0x4df4), TAGGED_OVERLAPPED_COMMANDS_0XF5((short) 0x4df5), TAGGED_OVERLAPPED_COMMANDS_0XF6((short) 0x4df6), TAGGED_OVERLAPPED_COMMANDS_0XF7((short) 0x4df7), TAGGED_OVERLAPPED_COMMANDS_0XF8((short) 0x4df8), TAGGED_OVERLAPPED_COMMANDS_0XF9((short) 0x4df9), TAGGED_OVERLAPPED_COMMANDS_0XFA((short) 0x4dfa), TAGGED_OVERLAPPED_COMMANDS_0XFB((short) 0x4dfb), TAGGED_OVERLAPPED_COMMANDS_0XFC((short) 0x4dfc), TAGGED_OVERLAPPED_COMMANDS_0XFD((short) 0x4dfd), TAGGED_OVERLAPPED_COMMANDS_0XFE((short) 0x4dfe), TAGGED_OVERLAPPED_COMMANDS_0XFF((short) 0x4dff), TARGET_OPERATING_CONDITIONS_HAVE_CHANGED((short) 0x3f00), THIRD_PARTY_DEVICE_FAILURE((short) 0x0d01), THRESHOLD_CONDITION_MET((short) 0x5b01), THRESHOLD_PARAMETERS_NOT_SUPPORTED((short) 0x2603), TIMEOUT_ON_LOGICAL_UNIT((short) 0x3e02), TIMESTAMP_CHANGED((short) 0x2a10), TOO_MANY_SEGMENT_DESCRIPTORS((short) 0x2608), TOO_MANY_TARGET_DESCRIPTORS((short) 0x2606), TOO_MUCH_WRITE_DATA((short) 0x4b02), TRACK_FOLLOWING_ERROR((short) 0x0900), TRANSCEIVER_MODE_CHANGED_TO_LVD((short) 0x2906), TRANSCEIVER_MODE_CHANGED_TO_SINGLE_ENDED((short) 0x2905), UNEXPECTED_INEXACT_SEGMENT((short) 0x260a), UNREACHABLE_COPY_TARGET((short) 0x0804), UNRECOVERED_READ_ERROR((short) 0x1100), UNRECOVERED_READ_ERROR_AUTO_REALLOCATE_FAILED((short) 0x1104), UNRECOVERED_READ_ERROR_RECOMMEND_REASSIGNMENT((short) 0x110b), UNRECOVERED_READ_ERROR_RECOMMEND_REWRITE_THE_DATA((short) 0x110c), UNSUCCESSFUL_SOFT_RESET((short) 0x4600), UNSUPPORTED_ENCLOSURE_FUNCTION((short) 0x3501), UNSUPPORTED_SEGMENT_DESCRIPTOR_TYPE_CODE((short) 0x2609), UNSUPPORTED_TARGET_DESCRIPTOR_TYPE_CODE((short) 0x2607), VOLTAGE_FAULT((short) 0x6500), VOLUME_SET_CREATED_OR_MODIFIED((short) 0x3f0a), VOLUME_SET_DEASSIGNED((short) 0x3f0c), VOLUME_SET_DELETED((short) 0x3f0b), VOLUME_SET_REASSIGNED((short) 0x3f0d), WARNING((short) 0x0b00), WARNING_ENCLOSURE_DEGRADED((short) 0x0b02), WARNING_SPECIFIED_TEMPERATURE_EXCEEDED((short) 0x0b01), WRITE_ERROR_AUTO_REALLOCATION_FAILED((short) 0x0c02), WRITE_ERROR_NOT_ENOUGH_UNSOLICITED_DATA((short) 0x0c0d), WRITE_ERROR_RECOMMEND_REASSIGNMENT((short) 0x0c03), WRITE_ERROR_UNEXPECTED_UNSOLICITED_DATA((short) 0x0c0c), WRITE_PROTECTED((short) 0x2700);
34  
35      /**
36       * The serialized value of this instance.
37       */
38      private short value;
39  
40      /**
41       * Maps two-byte fields (aka. short integers) to instances of this enumeration.
42       */
43      private static Map<Short , AdditionalSenseCodeAndQualifier> mapping;
44  
45      static {// initialize mapping
46          /*
47           * TODO replace ConcurrentHashMap with sorted array and use binary search. Has low priority since sense data is
48           * not needed in properly working iSCSI exchanges.
49           */
50          mapping = new ConcurrentHashMap<Short , AdditionalSenseCodeAndQualifier>();
51          for (AdditionalSenseCodeAndQualifier a : AdditionalSenseCodeAndQualifier.values())
52              mapping.put(a.value, a);
53      }
54  
55      /**
56       * Returns the {@link AdditionalSenseCodeAndQualifier} instance representing the passed value.
57       * 
58       * @param value the combined bytes of an ADDITIONAL SENSE CODE and an ADDITIONAL SENSE CODE QUALIFIER field
59       * @return the {@link AdditionalSenseCodeAndQualifier} instance representing the passed value
60       */
61      public static AdditionalSenseCodeAndQualifier valueOf (short value) {
62          return mapping.get(value);
63      }
64  
65      /**
66       * The constructor.
67       * 
68       * @param value the serialiezd value of the two represented fields.
69       */
70      private AdditionalSenseCodeAndQualifier (short value) {
71          this.value = value;
72      }
73  
74      /**
75       * Returns the two-byte/short value of the two represented fields.
76       * 
77       * @return the two-byte/short value of the two represented fields
78       */
79      public short getValue () {
80          return value;
81      }
82  
83      /**
84       * Returns the value of the ADDITIONAL SENSE CODE field represented by this instance.
85       * 
86       * @return value of the ADDITIONAL SENSE CODE field
87       */
88      public byte getAdditionalSenseCode () {
89          return (byte) (value >>> 8);
90      }
91  
92      /**
93       * Returns the value of the ADDITIONAL SENSE CODE QUALIFIER field represented by this instance.
94       * 
95       * @return the value of the ADDITIONAL SENSE CODE QUALIFIER field
96       */
97      public byte getAdditionalSenseCodeQualifier () {
98          return (byte) value;
99      }
100 }