⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 scsivar.h

📁 <B>Digital的Unix操作系统VAX 4.2源码</B>
💻 H
📖 第 1 页 / 共 4 页
字号:
#define SCSI_GROUP_2		0x40	/* SCSI Group Code 2.		*/#define SCSI_GROUP_3		0x60	/* SCSI Group Code 3.		*/#define SCSI_GROUP_4		0x80	/* SCSI Group Code 4.		*/#define SCSI_GROUP_5		0xA0	/* SCSI Group Code 5.		*/#define SCSI_GROUP_6		0xC0	/* SCSI Group Code 6.		*/#define SCSI_GROUP_7		0xE0	/* SCSI Group Code 7.		*/#define SCSI_GROUP_MASK		0xE0	/* SCSI Group Code mask.	*//* * SCSI Command Opcodes: */#define	SZ_TUR		0x00		/* TEST UNIT READY Command	      */#define SZ_REWIND	0x01		/* REWIND Command		      */#define SZ_RQSNS	0x03		/* REQUEST SENSE Command	      */#define SZ_RBL		0x05		/* READ BLOCK LIMITS Command	      */#define	SZ_READ		0x08		/* READ Command			      */#define SZ_WRITE	0x0a		/* WRITE Command		      */#define SZ_TRKSEL	0x0b		/* TRACK SELECT Comand		      */#define SZ_RESUNIT	0x16		/* RESERVE UNIT Command		      */#define SZ_WFM		0x10		/* WRITE FILEMARKS Command	      */#define SZ_SPACE	0x11		/* SPACE Command		      */#define SZ_INQ		0x12		/* INQUIRY Command		      */#define SZ_VFY		0x13		/* VERIFY Command		      */#define SZ_RBD		0x14		/* RECOVER BUFFERED DATA Command      */#define SZ_MODSEL	0x15		/* MODE SELECT Command		      */#define SZ_RELUNIT	0x17		/* RELEASE UNIT Command		      */#define SZ_ERASE	0x19		/* ERASE Command		      */#define SZ_MODSNS	0x1a		/* MODE SENSE Command		      */#define	SZ_SSLU		0x1b		/* DISK: START/STOP UNIT Command      */#define SZ_RECDIAG	0x1c		/* RECEIVE DIAGNOSTIC RESULT Command  */#define SZ_SNDDIAG	0x1d		/* SEND DIAGNOSTIC Command	      */#define SZ_MEDREMOVAL	0x1e		/* PREVENT/ALLOW MEDIUM REMOVAL Cmd     */#define	SZ_RDCAP	0x25		/* DISK: READ CAPACITY		      */#define SZ_FORMAT	0x04		/* DISK: FORMAT UNIT Command	      */#define SZ_REASSIGN	0x07		/* DISK: REASSIGN BLOCK Command	      */#define SZ_READ_10	0x28		/* DISK: READ 10-byte Command.	      */#define SZ_WRITE_10	0x2A		/* DISK: WRITE 10-byte Command.	      */#define SZ_SEEK_10	0x2B		/* DISK: SEEK 10-byte Command.	      */#define SZ_VFY_DATA	0x2f		/* DISK: VERIFY DATA Command	      */#define SZ_RDD		0x37		/* DISK: READ DEFECT DATA Command     */#define SZ_READL	0x3E		/* DISK: READ LONG Command            */#define SZ_WRITEL	0x3F		/* DISK: WRITE LONG Command           */#define RZSPECIAL	0x8000		/* DISK: set for special disk commands*//* * SCSI Commands for CD-ROM. *//* Group 1 Commands (Diagnostic) */#define SZ_WRITE_BUFFER		0x3B	/* CDROM: WRITE BUFFER Command.	   */#define SZ_READ_BUFFER		0x3C	/* CDROM: READ BUFFER Command.	   *//* Group 2 Commands */#define SZ_CHANGE_DEFINITION	0x40	/* CDROM: CHANGE DEFINITION Cmd.    */#define SZ_READ_SUBCHAN		0x42	/* CDROM: READ SUB-CHANNEL Cmd.	    */#define SZ_READ_TOC		0x43	/* CDROM: READ TOC Command.	    */#define SZ_READ_HEADER		0x44	/* CDROM: READ HEADER Command.	    */#define SZ_PLAY_AUDIO		0x45	/* CDROM: PLAY AUDIO Command.	    */#define SZ_PLAY_AUDIO_MSF	0x47	/* CDROM: PLAY AUDIO MSF Command.   */#define SZ_PLAY_AUDIO_TI	0x48	/* CDROM: PLAY AUDIO TRACK/INDEX.   */#define SZ_PLAY_TRACK_REL	0x49	/* CDROM: PLAY TRACK RELATIVE Cmd.  */#define SZ_PAUSE_RESUME		0x4B	/* CDROM: PAUSE/RESUME Command.	    *//* Group 5 Commands */#define SZ_PLAY_AUDIO_12	0xA5	/* CDROM: PLAY AUDIO Cmd (12 byte). */#define SZ_PLAY_TRACK_REL_12	0xA6	/* CDROM: PLAY TRACK RELATIVE Cmd.  *//* Group 6 Commands (Vendor Unique) */#define SZ_SET_ADDRESS_FORMAT	0xC0	/* CDROM: SET ADDRESS FORMAT Cmd.   */#define SZ_PLAYBACK_STATUS	0xC4	/* CDROM: PLAYBACK STATUS Command.  */#define SZ_PLAY_TRACK		0xC6	/* CDROM: PLAY TRACK Command.	    */#define SZ_PLAY_MSF		0xC7	/* CDROM: PLAY MSF Command.	    */#define SZ_PLAY_VAUDIO		0xC8	/* CDROM: PLAY AUDIO Command.	    */#define SZ_PLAYBACK_CONTROL	0xC9	/* CDROM: PLAYBACK CONTROL Command. *//* * Group 3 (normally reserved) - Pseudo SCSI Commands. */#define SZ_P_FSPACER	0x60		/* Psuedo opcode for space record     */#define SZ_P_FSPACEF	0x61		/* Psuedo opcode for space file	      */#define SZ_P_BSPACER	0x62		/* Psuedo opcode for backspace record */#define SZ_P_BSPACEF	0x63		/* Psuedo opcode for backspace file   */#define SZ_P_CACHE	0x64		/* Psuedo opcode for buffered mode    */#define SZ_P_NOCACHE	0x65		/* Psuedo opcode for no buffered mode */#define SZ_P_LOAD	0x66		/* Pseudo opcode for load (not used)  */#define SZ_P_UNLOAD	0x67		/* Pseudo opcode for unload           */#define SZ_P_SSUNIT	0x68		/* Pseudo opcode for start/stop unit  */#define SZ_P_RETENSION	0x69		/* Psuedo opcode for retension	      */#define SZ_P_EJECT	0x6a		/* Psuedo opcode for eject caddy.   *//* * SCSI Command Data structure names shortened */#define szdt_exsns	sz_datfmt.dat.exsns	/* EXTENDED SENSE Data	      */#define szdt_rbl	sz_datfmt.dat.rbl	/* READ BLOCK LIMITS Data     */#define	szdt_rdcap	sz_datfmt.dat.rdcap	/* DISK: READ CAPACITY Data   */#define	szdt_inq	sz_datfmt.dat.inq	/* INQUIRY Data		      */#define szdt_modsel	sz_datfmt.dat.modsel	/* MODE SELECT Data	      */#define szdt_modsns	sz_datfmt.dat.modsns	/* MODE SENSE Data	      *//* * SCSI STATUS Byte */#define	SZ_GOOD		0x00	/* Good					      */#define	SZ_CHKCND	0x02	/* Check Condition			      */#define	SZ_BUSY		0x08	/* Device cannot accept a command (busy)      */#define SZ_INTRM	0x10	/* Intermediate				      */#define SZ_RESCNF	0x18	/* Reservation Conflict			      *//* * Fake SCSI STATUS Byte. */#define	SZ_BAD		0xff	/* Fatal error command (couldn't do RQSNS)    *//* * SCSI Message Protocols */#define	SZ_CMDCPT	0x00	/* Command Complete			      */#define	SZ_EXTMSG	0x01	/* Extended message			      */#define SZ_SDP		0x02	/* Save Data Pointers			      */#define SZ_RDP		0x03	/* Restore Data Pointers (DISK: new)	      */#define SZ_DISCON	0x04	/* Disconnect				      */#define SZ_ABT		0x06	/* Abort				      */#define SZ_MSGREJ	0x07	/* Message Reject			      */#define SZ_NOP		0x08	/* No Operation				      */#define SZ_MSGPE	0x09	/* Message Parity Error			      */#define SZ_DEVRST	0x0c	/* Bus Device Reset			      */#define SZ_LNKCMP	0x0a	/* Linked Command Complete		      */#define SZ_LNKCMPF	0x0b	/* Linked Command Complete with Flag	      */#define SZ_ID_NODIS	0x80	/* IDENTIFY wo/ disconnect capability,	      */#define SZ_ID_DIS	0xc0	/* IDENTIFY w/ disconnect capability,	      *//* * SCSI Extended Message Codes */#define	SZ_SYNC_XFER	0x01	/* Synchronous Data Transfer Request          *//* * Command Data allocation constants */#define	SZ_INQ_MAXLEN	44	/* number of bytes for INQUIRY data (MAX)     */#define	SZ_INQ_MINLEN	 5	/* number of bytes for INQUIRY data (MIN)     */				/* next 3 must match sz_inq_dt struct below   */#define	SZ_VID_LEN	 8	/* INQUIRY data vendor ID field length	      */#define	SZ_PID_LEN	16	/* INQUIRY data product ID field length       */#define	SZ_REV_LEN	 4	/* INQUIRY data revision level field length   */#define SZ_RECDIAG_LEN	 6	/* number of bytes for RECEIVE DIAG data      */#define	SZ_RDCAP_LEN	 8	/* number of bytes for READ CAPACITY data     */#define SZ_RQSNS_LEN	20	/* number of bytes for REQUEST SENSE data     */#define SZ_MODSNS_LEN	14	/* number of bytes for MODE SENSE data	      */#define SZ_MODSEL_LEN	14	/* number of bytes for MODE SELECT data	      */				/* TODO1: DATAO: subtracts 2 for disk/cdrom */#define SZ_MAX_DT_LEN	44	/* Size of sz_datfmt structure		      *//* * Command Packet Length constants */#define SZ_MAX_CMD_LEN		22	/* maximum command length in bytes    */#define SZ_MODSEL_CMD_LEN	20	/* maximum length of modsel command   */#define	SZ_RDCAP_CMD_LEN	10	/* length of DISK read capacity cmd   */#define SZ_CMD_LEN		 6	/* length of commands in bytes	      *//* * Define Maximum Logical Block Address (LBA) for a 6-byte CDB. */#define SZ_MAX_LBA		0x1fffff /* Maximum 6-byte CDB LBA.	*//* * Pause/Resume Audio Playback Defines */#define SZ_AUDIO_PAUSE		0	/* Pause audio playback.	*/#define SZ_AUDIO_RESUME		1	/* Resume audio playback.	*//* * Allow/Prevent Medium Removal Defines */#define SZ_ALLOW_REMOVAL	0	/* Allow medium removal.	*/#define SZ_PREVENT_REMOVAL	1	/* Prevent medium removal.	*//* * Start/Stop Unit Defines */#define SZ_STOP_UNIT		0	/* Stop the unit.		*/#define SZ_START_UNIT		1	/* Start the unit.		*//* * Miscellaneous Constants */#define	SZ_DEFAULT_FILLS	7	/* Default number of fills that can   */					/* be written to keep tape streaming. */#define DEFAULT_SCSIID          7       /* Default system scsi id             *//* * MACRO for converting a longword to a byte *	args - the longword *	     - which byte in the longword you want */#define	LTOB(a,b)	((a>>(b*8))&0xff)/* MACROS for timing out spin loops. * *	desc:	Waits while expression is true. * *	args:	expr 		- expression to spin on *		spincount 	- amount of time to wait in microseconds *		retval		- return value of this macro */#define	SZWAIT_WHILE(expr,spincount,retval) {				\		for (retval = 0; ((retval < 100) && (expr)); retval++);	\		while ((expr) && ( retval < spincount)) {		\			DELAY(100);					\			retval++;					\		}							\	}/* * 	desc: Waits unitl expression is true. */#define SZWAIT_UNTIL(expr,spincount,retval) {				\		SZWAIT_WHILE((!expr),spincount,retval);			\	}/*  * macro for converting the density selection in the * minor number out of the buf struct into a tape option * struct index.*/#define DENS_IDX(bp)	((((minor(bp->b_dev))&DENS_MASK)>>3))/* * Request Sense Sense Key Codes. * Sense keys without comments are unsupported * becasue DEC devices don't use them. * TODO: comments are tape specific should be general? */#define SZ_NOSENSE	0x00	/* Successful cmd or EOT, ILI, FILEMARK	      */#define SZ_RECOVERR	0x01	/* Successful cmd with controller recovery    */#define SZ_NOTREADY	0x02	/* Device present but not ready		      */#define	SZ_MEDIUMERR	0x03	/* Cmd terminated with media flaw	      */#define SZ_HARDWARE	0x04	/* Controller or drive hardware error	      */#define SZ_ILLEGALREQ	0x05	/* Illegal command or command parameters      */#define SZ_UNITATTEN	0x06	/* Unit Attention			      */#define SZ_DATAPROTECT	0x07	/* Write attempted to write protected media   */#define SZ_BLANKCHK	0x08	/* Read zero length record (EOD)	      */#define	SZ_VNDRUNIQUE	0x09#define	SZ_COPYABORTD	0x0a#define SZ_ABORTEDCMD	0x0b	/* Cmd aborted that may retry successfully    */#define	SZ_EQUAL	0x0c#define SZ_VOLUMEOVFL	0x0d	/* Buffer data left over after EOM	      */#define SZ_MISCOMPARE	0x0e	/* Miscompare on Verify command		      */#define	SZ_RESERVED	0x0f/* Additional sence code values for extended sence data. */#define	SZ_ASC_RRETRY	0x17#define	SZ_ASC_RERROR	0x18/* * Top Level State Machine *//* Status/Positioning States */#define	SZ_NEXT		 0	/* Process next request from queue	      */#define SZ_SP_START	 1	/* Start a Status or Positioning Operation    */#define SZ_SP_CONT	 2	/* Continue SZ_SP_SETUP:		      *//* Read/Write (DMA) States */#define	SZ_RW_START	 3	/* Setup a Read or Write Operation	      */#define	SZ_RW_CONT	 4	/* Start/Continue a Read or Write Operation   */#define SZ_R_STDMA	 5	/* Start DMA READ			      */#define	SZ_W_STDMA	 6	/* Start DMA WRITE			      */#define SZ_R_DMA	 7	/* Read DMA processing			      */#define SZ_W_DMA	 8	/* Write DMA processing			      */#define SZ_R_COPY	 9	/* Copy READ data to memory		      */#define SZ_ERR		10	/* DMA Error				      */#define SZ_SP_START_ERR	11	/* Handle RQSNS SZ_IP rtncode for SP_START    */#define SZ_SP_CONT_ERR	12	/* Handle RQSNS SZ_IP rtncode for SP_CONT     */#define SZ_RDMA_ERR	13	/* Handle RQSNS SZ_IP rtncode for RDMA	      */#define SZ_WDMA_ERR	14	/* Handle RQSNS SZ_IP rtncode for WDMA	      *//* * Bottom Level State Machine */#define SZ_SP_ARB	 0	/* Arbitrate for the Bus		      */#define SZ_SP_SEL	 1	/* Select the target device		      */#define SZ_CMD_PHA	 2	/* Command Phase			      */#define SZ_DATAO_PHA	 3	/* Data Out Phase			      */#define SZ_DATAI_PHA	 4	/* Data In Phase			      */#define SZ_STATUS_PHA	 5	/* Status Phase				      */#define SZ_MESSI_PHA	 6	/* Message In Phase			      */#define SZ_MESSO_PHA	 7	/* Message Out Phase			      */#define SZ_RELBUS	 8	/* Release the Bus			      */#ifdef __mips/* * Current Bus Status Register  (SCS_CUR_STAT) */#define SCS_RST         0x80    /* reset condition on SCSI bus                */#define SCS_BSY         0x40    /* busy -- SCSI bus being used                */#define SCS_REQ         0x20    /* request portion of REQ/ACK handshake       */#define SCS_MESSI       0x1c    /* Message In Phase                           */#define SCS_MESSO       0x18    /* Message Out Phase                          */#define SCS_STATUS      0x0c    /* Status Phase                               */#define SCS_CMD         0x08    /* Command Phase                              */#define SCS_DATAI       0x04    /* Data In Phase                              */#define SCS_IO          0x04    /* I/O                                        */#define SCS_SEL         0x02    /* select a target or reselect an initiator   */#define SCS_DBP         0x01    /* data parity                                */#define SCS_DATAO       0x00    /* Data Out Phase                             */#define SCS_PHA_MSK     0x1c    /* Mask out the Phase Bits                    */#endif /* __mips *//* * define for fixed block tape units scsi. * Since there are no record boundaries we  * now must remember if a tape mark is pending*/#define TPMARK_PENDING	0X80000000#endif  SCSIVAR_INCLUDE 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -