package org.jscsi.target.scsi.sense.senseDataDescriptor;
import org.jscsi.target.scsi.sense.SenseData;
/**
* The SenseDataDescriptorType is part of a {@link SenseDataDescriptor} and
* determines the object's (non-abstract sub)class.
* <p>
* Vendor specific sense data descriptors types (values 0x80 to 0xff) and respective
* {@link SenseDataDescriptor}s are not implemented!
*
* @author Andreas Ergenzinger
*/
public enum SenseDataDescriptorType {
/**
* The information sense data descriptor provides information that is
* device-type or command specific and is defined in a command standard.
*/
INFORMATION((byte)0x00),
/**
* The command-specific information sense data descriptor provides
* information that depends on the command on which the exception condition
* occurred.
*/
COMMAND_SPECIFIC_INFORMATION((byte)0x01),
/**
* The sense key specific sense data descriptor provides additional
* information about the exception condition. The format and content of the
* sense-key specific data depends on the value in the {@link SenseData#senseKey} field.
*/
SENSE_KEY_SPECIFIC((byte)0x02),
/**
* The field replaceable unit sense data descriptor (see table 24) provides
* information about a component that has failed.
*/
FIELD_REPLACEABLE_UNIT((byte)0x03),
/**
* See SSC.
*/
STREAM_COMMANDS((byte)0x04),
/**
* See SBC.
*/
BLOCK_COMMANDS((byte)0x05),
/**
* See OSD.
*/
OSD_OBJECT_IDENTIFICATION((byte)0x06),
/**
* See OSD.
*/
OSD_RESPONSE_INTEGRITY_CHECK_VALUE((byte)0x07),
/**
* See OSD.
*/
OSD_ATTRIBUTE_IDENTIFICATION((byte)0x08),
/**
* See SAT.
*/
ATA_RETURN((byte)0x09);
/*
* 0x0a to 0x7f are reserved. 0x80 to 0xff are vendor specific
*
* Vendor specific sense data descriptors are not implemented!
*/
private final byte value;
private SenseDataDescriptorType(byte value) {
this.value = value;
}
public final byte getValue() {
return value;
}
}