Return to Unit Reference
Description
The SCSI interface unit is device non specific in that it implements only the SCSI protocol.
Actual command transfer is performed by a device specific driver that implements the exact semantics of the device. eg USB Mass Storage devices use the SCSI protocol, the SCSI interface
implements the protocol behaviour but the actual command transfer is handled by the USB storage driver.
Constants
[Expand]
SCSI specific constants SCSI_*
SCSI_NAME_PREFIX = 'SCSI';
|
Name prefix for SCSI Devices
|
SCSI_HOST_PREFIX = 'SCSIHost';
|
Name prefix for Host Devices
|
[Expand]
SCSI device type constants SCSI_TYPE_*
SCSI_TYPE_NONE = 0;
|
|
SCSI_TYPE_HDD = 1;
|
|
[Expand]
SCSI device state constants SCSI_STATE_*
SCSI_STATE_EJECTED = 0;
|
|
SCSI_STATE_INSERTED = 1;
|
|
[Expand]
SCSI device flag constants SCSI_FLAG_*
SCSI_FLAG_NONE = $00000000;
|
|
[Expand]
SCSI protocol message constants SCSI_MESSAGE_*
SCSI_MESSAGE_COMPLETE = $00;
|
|
SCSI_MESSAGE_EXTENDED = $01;
|
|
SCSI_MESSAGE_SAVE_DP = $02;
|
|
SCSI_MESSAGE_RESTORE_DP = $03;
|
|
SCSI_MESSAGE_DISCONNECT = $04;
|
|
SCSI_MESSAGE_ID_ERROR = $05;
|
|
SCSI_MESSAGE_ABORT = $06;
|
|
SCSI_MESSAGE_REJECT = $07;
|
|
SCSI_MESSAGE_NOOP = $08;
|
|
SCSI_MESSAGE_PARITY = $09;
|
|
SCSI_MESSAGE_LCOMPLETE = $0a;
|
|
SCSI_MESSAGE_FCOMPLETE = $0b;
|
|
SCSI_MESSAGE_RESET = $0c;
|
|
SCSI_MESSAGE_ABORT_TAG = $0d;
|
|
SCSI_MESSAGE_CLEAR_QUEUE = $0e;
|
|
SCSI_MESSAGE_INIT_REC = $0f;
|
|
SCSI_MESSAGE_REL_REC = $10;
|
|
SCSI_MESSAGE_TERMINATE = $11;
|
|
SCSI_MESSAGE_SIMPLE_TAG = $20;
|
|
SCSI_MESSAGE_HEAD_TAG = $21;
|
|
SCSI_MESSAGE_ORDERED_TAG = $22;
|
|
SCSI_MESSAGE_IGN_RESIDUE = $23;
|
|
SCSI_MESSAGE_IDENTIFY = $80;
|
|
|
SCSI_MESSAGE_X_MODIFY_DP = $00;
|
|
SCSI_MESSAGE_X_SYNC_REQ = $01;
|
|
SCSI_MESSAGE_X_WIDE_REQ = $03;
|
|
SCSI_MESSAGE_X_PPR_REQ = $04;
|
|
[Expand]
SCSI protocol status constants SCSI_STATUS_*
SCSI_STATUS_GOOD = $00;
|
|
SCSI_STATUS_CHECK_COND = $02;
|
|
SCSI_STATUS_COND_MET = $04;
|
|
SCSI_STATUS_BUSY = $08;
|
|
SCSI_STATUS_INT = $10;
|
|
SCSI_STATUS_INT_COND_MET = $14;
|
|
SCSI_STATUS_CONFLICT = $18;
|
|
SCSI_STATUS_TERMINATED = $20;
|
|
SCSI_STATUS_QUEUE_FULL = $28;
|
|
SCSI_STATUS_ILLEGAL = $ff;
|
|
SCSI_STATUS_SENSE = $80;
|
|
[Expand]
SCSI protocol sense key constants SCSI_SENSE_*
SCSI_SENSE_NO_SENSE = $00;
|
|
SCSI_SENSE_RECOVERED_ERROR = $01;
|
|
SCSI_SENSE_NOT_READY = $02;
|
|
SCSI_SENSE_MEDIUM_ERROR = $03;
|
|
SCSI_SENSE_HARDWARE_ERROR = $04;
|
|
SCSI_SENSE_ILLEGAL_REQUEST = $05;
|
|
SCSI_SENSE_UNIT_ATTENTION = $06;
|
|
SCSI_SENSE_DATA_PROTECT = $07;
|
|
SCSI_SENSE_BLANK_CHECK = $08;
|
|
SCSI_SENSE_VENDOR_SPECIFIC = $09;
|
|
SCSI_SENSE_COPY_ABORTED = $0A;
|
|
SCSI_SENSE_ABORTED_COMMAND = $0B;
|
|
SCSI_SENSE_VOLUME_OVERFLOW = $0D;
|
|
SCSI_SENSE_MISCOMPARE = $0E;
|
|
[Expand]
SCSI protocol additional sense code constants SCSI_ASC_*
SCSI_ASC_NO_SENSE = $00;
|
NO SENSE
|
SCSI_ASC_RECOVERED_RETRIES = $17;
|
RECOVERED DATA WITH RETRIES
|
SCSI_ASC_RECOVERED_ECC = $18;
|
RECOVERED DATA WITH ECC
|
SCSI_ASC_NOT_READY_LUN = $04;
|
LOGICAL UNIT NOT READY
|
SCSI_ASC_NOT_READY_NO_REF_POS = $06;
|
NO REFERENCE POSITION FOUND
|
SCSI_ASC_NOT_READY_LUN_COMM = $08;
|
LOGICAL UNIT COMMUNICATION
|
SCSI_ASC_NOT_READY_MEDIUM_NOT_PRESENT = $3A;
|
MEDIUM NOT PRESENT
|
[Expand]
SCSI protocol additional sense code qualifier constants SCSI_ASCQ_*
SCSI_ASCQ_NO_SENSE = $00;
|
NO SENSE
|
SCSI_ASCQ_RECOVERED_RETRIES = $01;
|
RECOVERED DATA WITH RETRIES
|
SCSI_ASCQ_RECOVERED_ECC = $00;
|
RECOVERED DATA WITH ECC
|
SCSI_ASCQ_NOT_READY_LUN_BECOME_READY = $01;
|
LOGICAL DRIVE NOT READY - BECOMING READY
|
SCSI_ASCQ_NOT_READY_LUN_INIT_REQUIRED = $02;
|
LOGICAL DRIVE NOT READY - INITIALIZATION REQUIRED
|
SCSI_ASCQ_NOT_READY_LUN_FORMAT_PROGRESS = $04;
|
LOGICAL UNIT NOT READY - FORMAT IN PROGRESS
|
SCSI_ASCQ_NOT_READY_LUN_DEVICE_BUSY = $FF;
|
LOGICAL DRIVE NOT READY - DEVICE IS BUSY
|
SCSI_ASCQ_NOT_READY_LUN_COMM_FAILURE = $00;
|
LOGICAL UNIT COMMUNICATION FAILURE
|
SCSI_ASCQ_NOT_READY_LUN_COMM_TIMEOUT = $01;
|
LOGICAL UNIT COMMUNICATION TIME-OUT
|
SCSI_ASCQ_NOT_READY_LUN_COMM_OVERRUN = $80;
|
LOGICAL UNIT COMMUNICATION OVERRUN
|
[Expand]
SCSI protocol command constants SCSI_COMMAND_*
SCSI_COMMAND_CHANGE_DEF = $40;
|
Change Definition (Optional)
|
SCSI_COMMAND_COMPARE = $39;
|
Compare (Optional)
|
SCSI_COMMAND_COPY = $18;
|
Copy (Optional)
|
SCSI_COMMAND_COP_VERIFY = $3A;
|
Copy and Verify (Optional)
|
SCSI_COMMAND_INQUIRY = $12;
|
Inquiry (MANDATORY)
|
SCSI_COMMAND_LOG_SELECT = $4C;
|
Log Select (Optional)
|
SCSI_COMMAND_LOG_SENSE = $4D;
|
Log Sense (Optional)
|
SCSI_COMMAND_MODE_SEL6 = $15;
|
Mode Select 6-byte (Device Specific)
|
SCSI_COMMAND_MODE_SEL10 = $55;
|
Mode Select 10-byte (Device Specific)
|
SCSI_COMMAND_MODE_SEN6 = $1A;
|
Mode Sense 6-byte (Device Specific)
|
SCSI_COMMAND_MODE_SEN10 = $5A;
|
Mode Sense 10-byte (Device Specific)
|
SCSI_COMMAND_READ_BUFF = $3C;
|
Read Buffer (Optional)
|
SCSI_COMMAND_REQ_SENSE = $03;
|
Request Sense (MANDATORY)
|
SCSI_COMMAND_SEND_DIAG = $1D;
|
Send Diagnostic (Optional)
|
SCSI_COMMAND_TST_U_RDY = $00;
|
Test Unit Ready (MANDATORY)
|
SCSI_COMMAND_WRITE_BUFF = $3B;
|
Write Buffer (Optional)
|
|
Commands Unique to Direct Access Devices
|
SCSI_COMMAND_COMPARE = $39;
|
Compare (Optional)
|
SCSI_COMMAND_FORMAT = $04;
|
Format Unit (MANDATORY)
|
SCSI_COMMAND_LCK_UN_CAC = $36;
|
Lock Unlock Cache (Optional)
|
SCSI_COMMAND_PREFETCH = $34;
|
Prefetch (Optional)
|
SCSI_COMMAND_MED_REMOVL = $1E;
|
Prevent/Allow medium Removal (Optional)
|
SCSI_COMMAND_READ6 = $08;
|
Read 6-byte (MANDATORY)
|
SCSI_COMMAND_READ10 = $28;
|
Read 10-byte (MANDATORY)
|
SCSI_COMMAND_READ12 = $A8;
|
Read 12-byte (Optional)
|
SCSI_COMMAND_READ16 = $88;
|
Read 16-byte (Optional)
|
SCSI_COMMAND_RD_CAPAC = $25;
|
Read Capacity (MANDATORY)
|
SCSI_COMMAND_RD_CAPAC10 = SCSI_COMMAND_RD_CAPAC;
|
Read Capacity (10)
|
SCSI_COMMAND_RD_DEFECT = $37;
|
Read Defect Data (Optional)
|
SCSI_COMMAND_READ_LONG = $3E;
|
Read Long (Optional)
|
SCSI_COMMAND_REASS_BLK = $07;
|
Reassign Blocks (Optional)
|
SCSI_COMMAND_RCV_DIAG = $1C;
|
Receive Diagnostic Results (Optional)
|
SCSI_COMMAND_RELEASE = $17;
|
Release Unit (MANDATORY)
|
SCSI_COMMAND_REZERO = $01;
|
Rezero Unit (Optional)
|
SCSI_COMMAND_SRCH_DAT_E = $31;
|
Search Data Equal (Optional)
|
SCSI_COMMAND_SRCH_DAT_H = $30;
|
Search Data High (Optional)
|
SCSI_COMMAND_SRCH_DAT_L = $32;
|
Search Data Low (Optional)
|
SCSI_COMMAND_SEEK6 = $0B;
|
Seek 6-Byte (Optional)
|
SCSI_COMMAND_SEEK10 = $2B;
|
Seek 10-Byte (Optional)
|
SCSI_COMMAND_SEND_DIAG = $1D;
|
Send Diagnostics (MANDATORY)
|
SCSI_COMMAND_SET_LIMIT = $33;
|
Set Limits (Optional)
|
SCSI_COMMAND_START_STP = $1B;
|
Start/Stop Unit (Optional)
|
SCSI_COMMAND_SYNC_CACHE = $35;
|
Synchronize Cache (Optional)
|
SCSI_COMMAND_VERIFY = $2F;
|
Verify (Optional)
|
SCSI_COMMAND_WRITE6 = $0A;
|
Write 6-Byte (MANDATORY)
|
SCSI_COMMAND_WRITE10 = $2A;
|
Write 10-Byte (MANDATORY)
|
SCSI_COMMAND_WRITE12 = $AA;
|
Write 12-Byte (Optional)
|
SCSI_COMMAND_WRITE16 = $8A;
|
Write 16-Byte (Optional)
|
SCSI_COMMAND_WRT_VERIFY = $2E;
|
Write and Verify (Optional)
|
SCSI_COMMAND_WRITE_LONG = $3F;
|
Write Long (Optional)
|
SCSI_COMMAND_WRITE_SAME = $41;
|
Write Same (Optional)
|
SCSI_COMMAND_RD_FMT_CAP = $23;
|
Read Format Capacities
|
SCSI_COMMAND_SVC_ACT_IN = $9E;
|
Service Action In
|
[Expand]
SCSI command data constants SCSI_COMMAND_MAX_*
SCSI_COMMAND_MAX_SIZE = 16;
|
|
[Expand]
SCSI service action constants SCSI_SAI_*
SCSI_SAI_READ_CAPACITY_16 = $10;
|
Read Capacity (16)
|
SCSI_SAI_GET_LBA_STATUS = $12;
|
Get LBA Status
|
[Expand]
SCSI inquiry data constants SCSI_INQUIRY_*
SCSI_INQUIRY_STANDARD = $00;
|
|
[Expand]
SCSI standard inquiry data constants SCSI_STANDARD_INQUIRY_*
SCSI_STANDARD_INQUIRY_SIZE = 36;
|
|
[Expand]
SCSI inquiry peripheral device type constants SCSI_DEVICE_TYPE_*
SCSI_DEVICE_TYPE_DISK = $00;
|
SBC-3 - Direct access block device (e.g., magnetic disk)
|
SCSI_DEVICE_TYPE_TAPE = $01;
|
SSC-3 - Sequential-access device (e.g., magnetic tape)
|
SCSI_DEVICE_TYPE_PRINTER = $02;
|
SSC - Printer device
|
SCSI_DEVICE_TYPE_PROCESSOR = $03;
|
SPC-2 - Processor device
|
SCSI_DEVICE_TYPE_WRITE_ONCE = $04;
|
SBC - Write-once device (e.g., some optical disks)
|
SCSI_DEVICE_TYPE_CD_DVD = $05;
|
MMC-5 - CD/DVD device
|
SCSI_DEVICE_TYPE_SCANNER = $06;
|
Scanner device (obsolete)
|
SCSI_DEVICE_TYPE_OPTICAL = $07;
|
SBC - Optical memory device (e.g., some optical disks)
|
SCSI_DEVICE_TYPE_CHANGER = $08;
|
SMC-3 - Medium changer device (e.g., jukeboxes)
|
SCSI_DEVICE_TYPE_COMMS = $09;
|
Communications device (obsolete)
|
SCSI_DEVICE_TYPE_ARRAY = $0C;
|
SCC-2 - Storage array controller device (e.g., RAID)
|
SCSI_DEVICE_TYPE_ENCLOSURE = $0D;
|
SES - Enclosure services device
|
SCSI_DEVICE_TYPE_RBC = $0E;
|
RBC - Simplified direct-access device (e.g., magnetic disk)
|
SCSI_DEVICE_TYPE_CARD = $0F;
|
OCRW - Optical card reader/writer device
|
SCSI_DEVICE_TYPE_BRIDGE = $10;
|
BCC - Bridge Controller Commands
|
SCSI_DEVICE_TYPE_OBJECT = $11;
|
OSD - Object-based Storage Device
|
SCSI_DEVICE_TYPE_AUTOMATION = $12;
|
ADC-2 - Automation/Drive Interface
|
SCSI_DEVICE_TYPE_WELL_KNOWN = $1E;
|
Well known logical unit
|
SCSI_DEVICE_TYPE_UNKNOWN = $1F;
|
Unknown or no device type
|
[Expand]
SCSI inquiry removable media bit constants SCSI_REMOVABLE_MEDIA_*
SCSI_REMOVABLE_MEDIA_BIT = $80;
|
|
[Expand]
SCSI request sense data constants SCSI_REQUEST_SENSE_*
SCSI_REQUEST_SENSE_SIZE = 18;
|
|
[Expand]
SCSI read capacity data constants SCSI_READ_CAPACITY_*
SCSI_READ_CAPACITY_SIZE = 8;
|
|
SCSI_READ_CAPACITY_16_SIZE = 32;
|
|
[Expand]
SCSI read 10 data constants SCSI_READ_10_*
SCSI_READ_10_MAX_BLOCKS = $FFFF;
|
|
[Expand]
SCSI write 10 data constants SCSI_WRITE_10_*
SCSI_WRITE_10_MAX_BLOCKS = $FFFF;
|
|
[Expand]
SCSI logging constants SCSI_LOG_*
SCSI_LOG_LEVEL_DEBUG = LOG_LEVEL_DEBUG;
|
SCSI debugging messages
|
SCSI_LOG_LEVEL_INFO = LOG_LEVEL_INFO;
|
SCSI informational messages, such as a device being attached or detached
|
SCSI_LOG_LEVEL_ERROR = LOG_LEVEL_ERROR;
|
SCSI error messages
|
SCSI_LOG_LEVEL_NONE = LOG_LEVEL_NONE;
|
No SCSI messages
|
Type definitions
To be documented
Public variables
To be documented
Function declarations
To be documented
Return to Unit Reference