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

📄 scsivar.h

📁 <B>Digital的Unix操作系统VAX 4.2源码</B>
💻 H
📖 第 1 页 / 共 3 页
字号:
	    u_char	link:1;		/* Link				      */	    u_char	flag:1;		/* Flag				      */	    u_char		:4;	/* Reserved			      */	    u_char	mbz:2;		/* Must be Zero			      */	    u_char	pad[16];	/* Pad				      */	}space;	/*	 * VERIFY Command	 */	struct sz_vfy_cm {	    u_char	fixed:1;	/* Fixed			      */	    u_char	bytcmp:1;	/* Byte Compare			      */	    u_char		:3;	/* Reserved			      */	    u_char	lun:3;		/* Logical Unit Number		      */	    u_char	verflen2;	/* Verification Length (MSB)	      */	    u_char	verflen1;	/* Verification Length		      */	    u_char	verflen0;	/* Verification Length (LSB)	      */	    u_char	link:1;		/* Link				      */	    u_char	flag:1;		/* Flag				      */	    u_char		:4;	/* Reserved			      */	    u_char	mbz:2;		/* Must be Zero			      */	    u_char	pad[16];	/* Pad				      */	}vfy;	/*	 * ERASE Command	 */	struct sz_era_cm {	    u_char	longbit:1;	/* Long				      */	    u_char		:4;	/* Reserved			      */	    u_char	lun:3;		/* Logical Unit Number		      */	    u_char		:8;	/* Reserved			      */	    u_char		:8;	/* Reserved			      */	    u_char		:8;	/* Reserved			      */	    u_char	link:1;		/* Link				      */	    u_char	flag:1;		/* Flag				      */	    u_char		:4;	/* Reserved			      */	    u_char	mbz:2;		/* Must be Zero			      */	    u_char	pad[16];	/* Pad				      */	}erase;	/*	 * SSUNIT/LOAD/UNLOAD Command	 */	struct sz_ld_cm {	    u_char	immed:1;	/* Immediate			      */	    u_char		:4;	/* Reserved			      */	    u_char	lun:3;		/* Logical Unit Number		      */	    u_char		:8;	/* Reserved			      */	    u_char		:8;	/* Reserved			      */	    u_char	load:1;		/* Load				      */	    u_char	reten:1;	/* Retention			      */	    u_char		:6;	/* Reserved			      */	    u_char	link:1;		/* Link				      */	    u_char	flag:1;		/* Flag				      */	    u_char		:4;	/* Reserved			      */	    u_char	mbz:2;		/* Must be Zero			      */	    u_char	pad[16];	/* Pad				      */	}ld;	/*	 * SEND DIAGNOSTIC Command	 */	struct sz_snd_diag_cm {	    u_char	unitofl:1;	/* Unit Offline			      */	    u_char	devofl:1;	/* Device Offline		      */	    u_char	selftst:1;	/* Self Test			      */	    u_char		:2;	/* Reserved			      */	    u_char	lun:3;		/* Logical Unit Number		      */	    u_char		:8;	/* Reserved			      */	    u_char	mbz1[2];	/* Must be Zero			      */	    u_char	link:1;		/* Link				      */	    u_char	flag:1;		/* Flag				      */	    u_char		:4;	/* Reserved			      */	    u_char	mbz:2;		/* Must be Zero			      */	    u_char	pad[16];	/* Pad				      */	}diag;	/*	 * RECEIVE DIAGNOSTIC RESULT Command	 */	struct sz_recdiag_cm {	    u_char		:5;	/* Reserved			      */	    u_char	lun:3;		/* Logical Unit Number		      */	    u_char		:8;	/* Reserved			      */	    u_char	aloclen1;	/* Allocation Length (MSB)	      */	    u_char	aloclen0;	/* Allocation Length (LSB)_	      */	    u_char	link:1;		/* Link				      */	    u_char	flag:1;		/* Flag				      */	    u_char		:4;	/* Reserved			      */	    u_char	mbz:2;		/* Must be Zero			      */	    u_char	pad[16];	/* Pad				      */	}recdiag;	/*	 * MODE SELECT Command	 */	struct sz_modsel_cm {	    u_char	sp:1;		/* Save Parameters (DISK only)	      */	    u_char	mbz0:3;		/* Reserved (all)		      */	    u_char	pf:1;		/* Page Format			      */	    u_char	lun:3;		/* Logical Unit Number (all)	      */	    u_char		:8;	/* Reserved			      */	    u_char		:8;	/* Reserved			      */	    u_char	pll;		/* Parameter List Length	      */	    u_char	link:1;		/* Link				      */	    u_char	flag:1;		/* Flag				      */	    u_char		:4;	/* Reserved			      */	    u_char	mbz:2;		/* Must be Zero			      */	/* Parameter List Header	*/	    u_char		:8;	/* Reserved			      */	    u_char		:8;	/* Reserved			      */	    u_char	speed:4;	/* Was mbz1 now speed		      */	    u_char	bufmode:3;	/* Buffered Mode		      */	    u_char		:1;	/* Reserved			      */	    u_char	rdeclen;	/* Record Descriptor Length	      */	/* Parameter List Block Descriptor */	    u_char	density;	/* Was mbz2 now its density 	      */	    u_char	numofrec2;	/* Number of Records (MSB)	      */	    u_char	numofrec1;	/* Number of Records 		      */	    u_char	numofrec0;	/* Number of Records (LSB)	      */	    u_char		:8;	/* Reserved			      */	    u_char	reclen2;	/* Record Length (MSB)		      */	    u_char	reclen1;	/* Record Length 		      */	    u_char	reclen0;	/* Record Length (LSB)		      */	    u_char	vulen;		/* Vendor Unique Length		      */	    u_char	nof:3;		/* Enable Fillers		      */	    u_char	mbz3:3;		/* Must be Zero			      */	    u_char	notimo:1;	/* Disable Reselect timeouts	      */	    u_char	vu7:1;		/* Direct Track Access		      */	    u_char	pad[2];		/* Pad				      */	}modsel;	/*	 * Track SELECT Command	 */	struct sz_trksel_cm {	    u_char		:5;	/* Reserved			      */	    u_char	lun:3;		/* Logical Unit Number		      */	    u_char		:8;	/* Reserved			      */	    u_char		:8;	/* Reserved			      */	    u_char	trkval;		/* Track Value			      */	    u_char	link:1;		/* Link				      */	    u_char	flag:1;		/* Flag				      */	    u_char		:4;	/* Reserved			      */	    u_char	mbz:2;		/* Must be Zero			      */	    u_char	pad[16];	/* Pad				      */	}trksel;	/*	 * RESERVE UNIT Command	 * RELEASE UNIT Command	 */	 struct sz_runit_cm {	    u_char		:1;	/* Reserved			      */	    u_char	thrdpdev:3;	/* Third Party Device		      */	    u_char	thrdp:1;	/* Third Party			      */	    u_char	lun:3;		/* Logical Unit Number		      */	    u_char		:8;	/* Reserved			      */	    u_char		:8;	/* Reserved			      */	    u_char		:8;	/* Reserved			      */	    u_char	link:1;		/* Link				      */	    u_char	flag:1;		/* Flag				      */	    u_char		:4;	/* Reserved			      */	    u_char	mbz:2;		/* Must be Zero			      */	    u_char	pad[16];	/* Pad				      */	}runit;	/*	 * DISK specific:	 *	READ CAPACITY Command	 *	Read/Write Long	 */	 struct sz_rdcap_cm {	    u_char	reladr:1;	/* RelAdr (NOTE: spec dose not say!)  */	    u_char		:4;	/* Reserved			      */	    u_char	lun:3;		/* Logical Unit Number		      */	    u_char	lbaddr3;	/* Logical Block Address (MSB)	      */	    u_char	lbaddr2;	/* Logical Block Address	      */	    u_char	lbaddr1;	/* Logical Block Address	      */	    u_char	lbaddr0;	/* Logical Block Address (LSB)	      */	    u_char		:8;	/* Reserved			      */	    u_char		:8;	/* Reserved			      */	    u_char	pmi:1;		/* Partial Media Indicator	      */	    u_char		:5;	/* Reserved			      */	    u_char	mbz1:2;		/* Vendor Unique		      */	    u_char	link:1;		/* Link				      */	    u_char	flag:1;		/* Flag				      */	    u_char		:4;	/* Reserved			      */	    u_char	mbz2:2;		/* Vendor Unique		      */	    u_char	pad[12];	/* Pad				      */	}rdcap;	 struct sz_rwl_cm {	    u_char	reladr:1;	/* RelAdr (NOTE: spec dose not say!)  */	    u_char		:4;	/* Reserved			      */	    u_char	lun:3;		/* Logical Unit Number		      */	    u_char	lbaddr3:7;	/* Logical Block Address (MSB)	      */	    u_char	phad:1;		/* Physical Address Flag              */	    u_char	lbaddr2;	/* Logical Block Address	      */	    u_char	lbaddr1;	/* Logical Block Address	      */	    u_char	lbaddr0;	/* Logical Block Address (LSB)	      */	    u_char		:8;	/* Reserved			      */	    u_char		:8;	/* Reserved			      */	    u_char	dspec:8; 	/* Drive specific byte 55:0 22/23:1   */	    u_char	link:1;		/* Link				      */	    u_char	flag:1;		/* Flag				      */	    u_char		:4;	/* Reserved			      */	    u_char	mbz2:2;		/* Vendor Unique		      */	    u_char	pad[12];	/* Pad				      */	}rwl;    }cmd;};/* * Data Format Structure */struct sz_datfmt {    union {	/*	 * Extended Sense Data Format	 */	struct sz_exsns_dt {	    u_char	errcode:4;	/* Error Code			      */	    u_char	errclass:3;	/* Error Class			      */	    u_char	valid:1;	/* Valid			      */	    u_char	segnum;		/* Segment Number		      */	    u_char	snskey:4;	/* Sense Key			      */	    u_char		:1;	/* Reserved			      */	    u_char	ili:1;		/* Illegal Length Indicator	      */	    u_char	eom:1;		/* End of Medium		      */	    u_char	filmrk:1;	/* Filemark			      */	    u_char	infobyte3;	/* Information Byte (MSB)	      */	    u_char	infobyte2;	/* Information Byte 		      */	    u_char	infobyte1;	/* Information Byte 		      */	    u_char	infobyte0;	/* Information Byte (LSB)	      */	    u_char	asl;		/* Additional Sense Length	      */	    union {			/* Additional sense bytes 	      */		struct {		/* TAPE specific bytes		      */		    u_char ctlr;	/* Controller internal error code     */		    u_char drv0;	/* Drive error byte		      */		    u_char drv1;	/* Drive error byte		      */		    u_char pad[9];	/* Pad				      */		} tz_asb;		struct {		/* DISK specific bytes		      */		    u_char rb1[4];	/* Reserved bytes		      */		    u_char asc;		/* Additional Sense Code	      */		    u_char rb2[5];	/* Reserved bytes		      */		    u_char pad[2];	/* Pad				      */		} rz_asb;		struct {		/* CDROM specific bytes		      */		    u_char rb1[4];	/* Reserved bytes		      */		    u_char asc;		/* Additional Sense Code	      */		    u_char rb2;		/* Reserved byte		      */		    u_char frufld;	/* Field Replacable Unit failed	      */		    u_char bitp:3;	/* Bit Pointer			      */		    u_char bpv:1;	/* Bit Pointer Valid		      */		    u_char vu:2;	/* Vendor Unique		      */		    u_char cd:1;	/* Command / Data		      */		    u_char fpv:1;	/* Field Pointer Valid		      */		    u_char fpmsb;	/* Field Pointer (MSB)		      */		    u_char fplsb;	/* Field Pointer (LSB)		      */		    u_char pad[2];	/* Pad				      */		} cd_asb;	    } asb;	    u_char	pad1[24];	}exsns;	/*	 * READ BLOCK LIMITS Data	 */	struct sz_rd_blklim_dt {	    u_char		:8;	/* Reserved			      */	    u_char	maxreclen2;	/* Maximum Record Length (MSB)	      */	    u_char	maxreclen1;	/* Maximum Record Length 	      */	    u_char	maxreclen0;	/* Maximum Record Length (LSB)	      */	    u_char	minreclen1;	/* Minimum Record Length (MSB)	      */	    u_char	minreclen0;	/* Minimum Record Length (LSB)	      */	    u_char	pad[14];	/* Pad				      */	    u_char	pad1[24];	}rdblim;	/*	 * DISK specific:	 *	READ CAPACITY Data	 */	struct sz_rdcap_dt {	    u_char	lbaddr3;	/* Logical block Address (MSB)	      */	    u_char	lbaddr2;	/* Logical block Address	      */	    u_char	lbaddr1;	/* Logical block Address	      */	    u_char	lbaddr0;	/* Logical block Address (LSB)	      */	    u_char	blklen3;	/* Block Length (MSB)		      */	    u_char	blklen2;	/* Block Length			      */	    u_char	blklen1;	/* Block Length			      */	    u_char	blklen0;	/* Block Length (LSB)		      */	    u_char	pad[12];	/* Pad				      */	    u_char	pad1[24];	}rdcap;	/*	 * INQUIRY Data	 *	 * NOTE: the RRD40 returns more data than we allocate space	 *	 for, but the extra data is not needed by the driver	 *	 so we don't bother to read it in.	 */	struct sz_inq_dt {	    u_char	perfdt;		/* Peripheral Deice Type	      */	    u_char	devtq:7;	/* Device Type Qualifier	      */	    u_char	rmb:1;		/* Removable Media Bit		      */	    u_char	version;	/* Version			      */	    u_char		:8;	/* Reserved			      */	    u_char	addlen;		/* Additional Length		      */	    u_char	rsvd[3];	/* Reserved			      */	    u_char	vndrid[8];	/* Vendor ID (ASCII)		      */	    u_char	prodid[16];	/* Product ID (ASCII)		      */	    u_char	revlvl[4];	/* Revision level (ASCII)	      */	    u_char	revdata[8];	/* Revision data (ASCII)	      */	}inq;	/*	 * MODE SENSE Data for TAPES	 */	struct sz_modsns_dt {	/* Parameter List Header	*/	    u_char	sdlen;		/* Sense Data Length		      */	    u_char	mbz1:8;		/* Must be Zero			      */

⌨️ 快捷键说明

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