add directory bin-src
This commit is contained in:
132
bin-src/scsi.h
Normal file
132
bin-src/scsi.h
Normal file
@@ -0,0 +1,132 @@
|
||||
|
||||
#ifndef __SCSI_H__
|
||||
#define __SCSI_H__
|
||||
/*
|
||||
For documentation on the OPCODES, MESSAGES, and SENSE values,
|
||||
please consult the SCSI standard.
|
||||
*/
|
||||
|
||||
/*
|
||||
SCSI opcodes
|
||||
*/
|
||||
|
||||
#define TEST_UNIT_READY 0x00
|
||||
#define REZERO_UNIT 0x01
|
||||
#define REQUEST_SENSE 0x03
|
||||
#define FORMAT_UNIT 0x04
|
||||
#define REASSIGN_BLOCKS 0x07
|
||||
#define READ_6 0x08
|
||||
#define WRITE_6 0x0a
|
||||
#define SEEK 0x0b
|
||||
#define INQUIRY 0x12
|
||||
#define MODE_SELECT 0x15
|
||||
#define RESERVE 0x16
|
||||
#define RELEASE 0x17
|
||||
#define COPY 0x18
|
||||
#define MODE_SENSE 0x1a
|
||||
#define START_STOP 0x1b
|
||||
#define RECIEVE_DAIGNOSTIC 0x1c
|
||||
#define SEND_DIAGNOSTIC 0x1d
|
||||
#define ALLOW_MEDIUM_REMOVAL 0x1e
|
||||
|
||||
#define READ_CAPACITY 0x25
|
||||
#define READ_10 0x28
|
||||
#define WRITE_10 0x2a
|
||||
#define SEEK_10 0x2b
|
||||
#define WRITE_VERIFY 0x2e
|
||||
#define VERIFY 0x2f
|
||||
#define SEARCH_HIGH 0x30
|
||||
#define SEARCH_EQUAL 0x31
|
||||
#define SEARCH_LOW 0x32
|
||||
#define SET_LIMITS 0x33
|
||||
#define COMPARE 0x39
|
||||
#define COPY_VERIFY 0x3a
|
||||
|
||||
/*
|
||||
MESSAGE CODES
|
||||
*/
|
||||
|
||||
#define COMMAND_COMPLETE 0x00
|
||||
#define EXTENDED_MESSAGE 0x01
|
||||
#define SAVE_POINTERS 0x02
|
||||
#define RESTORE_POINTERS 0x03
|
||||
#define DISCONNECT 0x04
|
||||
#define INITIATOR_ERROR 0x05
|
||||
#define ABORT 0x06
|
||||
#define MESAGE_REJECT 0x07
|
||||
#define NOP 0x08
|
||||
#define MSG_PARITY_ERROR 0x09
|
||||
#define LINKED_CMD_COMPLETE 0x0a
|
||||
#define LINKED_FLG_CMD_COMPLETE 0x0b
|
||||
#define BUS_DEVICE_RESET 0x0c
|
||||
#define IDENTIFY 0x80
|
||||
|
||||
/*
|
||||
Our errors returned by OUR driver, NOT SCSI message. Orr'd with
|
||||
SCSI message passed back to driver <IF any>.
|
||||
*/
|
||||
|
||||
/* NO error */
|
||||
#define DID_OK 0x0000
|
||||
/* Couldn't connect before timeout period */
|
||||
#define DID_NO_CONNECT 0x0100
|
||||
/* BUS stayed busy through time out period */
|
||||
#define DID_BUS_BUSY 0x0200
|
||||
/* TIMED OUT for other reason */
|
||||
#define DID_TIME_OUT 0x0300
|
||||
/* ERROR from TARGET */
|
||||
#define DID_TERROR 0x0400
|
||||
/* TARGET was busy */
|
||||
#define DID_TBUSY 0x0500
|
||||
/* TARGET disconnected prematurely */
|
||||
#define DID_TDISCONNECT 0x0600
|
||||
/* TARGET was off line */
|
||||
#define DID_TOFFLINE 0x0700
|
||||
/* TARGET wants US to send IT a message */
|
||||
#defibe DID_TREQ_MSG_OUT 0x0800
|
||||
/* TARGET parity error */
|
||||
#define DID_TPARITY 0x0900
|
||||
/* TARGET requested reselect */
|
||||
#define DID_TRESELECT 0x0A00
|
||||
/* TARGET was not in the range 0-6 inlclusive */
|
||||
#define DID_BAD_TARGET 0x0B00
|
||||
|
||||
/*
|
||||
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 COPY_ABORTED 0x0a
|
||||
#define ABORTED_COMMAND 0x0b
|
||||
#define VOLUME_OVERFLOW 0x0d
|
||||
#define MISCOMPARE 0x0e
|
||||
|
||||
|
||||
/*
|
||||
DEVICE TYPES
|
||||
|
||||
*/
|
||||
|
||||
#define TYPE_DISK 0x00
|
||||
#define TYPE_TAPE 0x01
|
||||
#define TYPE_WORM 0x04 /* Treated as ROM by our system */
|
||||
#define TYPE_ROM 0x05
|
||||
#define TYPE_NO_LUN 0x7f
|
||||
/*
|
||||
Every SCSI command starts with a one byte OP-code.
|
||||
The next byte's high three bits are the LUN of the
|
||||
device. Any multi-byte quantities are stored high byte
|
||||
first, and may have a 5 bit MSB in the same byte
|
||||
as the LUN.
|
||||
*/
|
||||
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user