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

📄 streg.h

📁 操作系统SunOS 4.1.3版本的源码
💻 H
字号:
/* @(#)streg.h       1.1 92/07/30 Copyr 1987 Sun Micro *//* * Defines for SCSI tape drives. */#define ST_SYSGEN   			/* Enable Sysgen controller support */#define MAX_ST_DEV_SIZE		65535	/* 64KB limit for variable length I/O */#define MAX_AUTOLOAD_DELAY	60	/* 120 Sec. Auto-load maximum delay */#define ST_AUTODEN_LIMIT	1	/* Auto density file limit */#ifdef  lint#define ST_SYSGEN   			/* Enable Sysgen controller support */#define ST_AUTOPOSITION  		/* Enable seek support */#define ST_TIMEOUT			/* Enable command timeouts *//*#define sun2				/* Enable sun2 support *//*#define CPU_SUN2_120		2	/*   "     "     "     */#endif  lint#define CLOSED			 0#define CLOSING			 1#define OPEN_FAILED_LOADING	 2#define OPEN_FAILED_TAPE	 3#define OPEN_FAILED		 4#define OPENING_SYSGEN		 5#define OPENING_DELAY		 6#define OPENING			 7#define APPEND_TESTING		 8#define DENSITY_CHANGING	 9#define RETRYING_CMD		10#define SENSING			11#define OPEN			12/* * Eof codes. */#define ST_NO_EOF		0x00#define ST_EOF			0x01#define ST_EOF_PENDING		0x02#define ST_EOT			ST_EOF/* * Operation codes. */#define SC_REWIND		0x01#define SC_QIC02		0x0D#define SC_READ_XSTATUS_CIPHER	0xe0		/* Sun-2, Cipher tape only */#define SC_SPACE_REC		0x11#define SC_ERASE_TAPE		0x19#define SC_LOAD			0x1B#define SC_UNLOAD		0x80		/* phony - for int use only */#define SC_BSPACE_FILE		0x81		/* phony - for int use only */#define SC_SPACE_FILE		0x82		/* phony - for int use only */#define SC_RETENSION		0x83		/* phony - for int use only */#define SC_QIC11		0x84		/* phony - for int use only */#define SC_QIC24		0x85		/* phony - for int use only */#define SC_READ_APPEND		0x86		/* phony - for int use only *//* * Supported tape device types plus default type for opening. * Types 10 - 13, are special (ancient too) drives. * Types 14 - 1f, are 1/4-inch cartridge drives. * Types 20 - 28, are 1/2-inch cartridge or reel drives. * Types 28+, are rdat (vcr) drives. */#define ST_TYPE_INVALID		0x00#define ST_TYPE_SYSGEN1		0x10	/* Sysgen with QIC-11 only */#define ST_TYPE_SYSGEN		0x11	/* Sysgen with QIC-24 and QIC-11 */#define ST_TYPE_DEFAULT		0x12	/* Who knows ? */#define ST_TYPE_ADAPTEC		0x13	/* Adaptec */#define ST_TYPE_EMULEX		0x14	/* Emulex MT-02 */#define ST_TYPE_ARCHIVE		0x15	/* Archive QIC-150 */#define ST_TYPE_WANGTEK		0x16	/* Wangtek QIC-150 */#define ST_TYPE_ADSI		0x17	/* ADSI */#define ST_TYPE_CDC		0x20	/* CDC */#define ST_TYPE_FUJI		0x21	/* Fujitsu */#define ST_TYPE_KENNEDY		0x22	/* Kennedy */#define ST_TYPE_HP		0x23	/* HP */#define ST_TYPE_EXABYTE		0x28	/* Exabyte *//* * Misc defines specific to sysgen controllers */#define ST_SYSGEN_QIC11		0x26#define ST_SYSGEN_QIC24		0x27#define ST_SYSGEN_SENSE_LEN	16#define ST_SYSGEN_SENSE_BYTES	4/* * Misc defines specific to emulex controllers */#define ST_EMULEX_QIC11		0x84#define ST_EMULEX_QIC24		0x00#define ST_EMULEX_SENSE_LEN	12/* * defines for SCSI tape CDB. */#undef	t_code#undef	high_count#undef	mid_count#undef	low_countstruct	scsi_cdb6 {		/* scsi command description block */	u_char	cmd;		/* command code */	u_char	lun	: 3;	/* logical unit number */	u_char	t_code	: 5;	/* high part of address */	u_char	high_count;	/* middle part of address */	u_char	mid_count;	/* low part of address */	u_char	low_count;	/* block count */	u_char	vu_57	: 1;	/* vendor unique (byte 5 bit 7) */	u_char	vu_56	: 1;	/* vendor unique (byte 5 bit 6) */	u_char		: 4;	/* reserved */	u_char	fr	: 1;	/* flag request (interrupt at completion) */	u_char	link	: 1;	/* link (another command follows) */};/* * Parameter list for the MODE_SELECT and MODE_SENSE commands. * The parameter list contains a header, followed by zero or more * block descriptors, followed by vendor unique parameters, if any. * Note, only one 8-byte block descriptor is used for 1/2-inch SCSI * tape devices (e.g. CDC HI/TC, HP SCSI-2, and Kennedy). */#define MS_BD_LEN	8struct st_ms_mspl {	u_char	reserved1;	/* reserved, sense data length */	u_char	reserved2;	/* reserved, medium type */	u_char	wp	:1;	/* write protected */	u_char	bufm	:3;	/* buffered mode */	u_char	speed	:4;	/* speed */	u_char	bd_len;		/* block length in bytes */	u_char	density;	/* density code */	u_char	high_nb;	/* number of logical blocks on the medium */	u_char	mid_nb;		/* that are to be formatted with the density */	u_char	low_nb;		/* code and block length in block descriptor */	u_char	reserved;	/* reserved */	u_char	high_bl;	/* block length */	u_char	mid_bl;		/*   "      "   */	u_char	low_bl;		/*   "      "   */};struct st_ms_exabyte {	u_char	reserved1;	/* reserved, sense data length */	u_char	reserved2;	/* reserved, medium type */	u_char	wp	:1;	/* write protected */	u_char	bufm	:3;	/* buffered mode */	u_char	speed	:4;	/* speed */	u_char	bd_len;		/* block length in bytes */	u_char	density;	/* density code */	u_char	high_nb;	/* number of logical blocks on the medium */	u_char	mid_nb;		/* that are to be formatted with the density */	u_char	low_nb;		/* code and block length in block descriptor */	u_char	reserved;	/* reserved */	u_char	high_bl;	/* block length */	u_char	mid_bl;		/*   "      "   */	u_char	low_bl;		/*   "      "   */	u_char	optional1;	/* optional vendor unique byte */};/* * SCSI tape REQUEST SENSE parameter block.  Note, * this structure should have an even number of bytes to * eliminate any byte packing problems with our host adapters. */struct	st_sense {		/* scsi tape extended sense for error class 7 */	/* byte 0 */	u_char	adr_val	: 1;	/* sense data is valid */	u_char		: 7;	/* fixed at binary 1110000 */	/* byte 1 */	u_char	seg_num;	/* segment number, applies to copy cmd only */	/* byte 2 */	u_char	fil_mk	: 1;	/* file mark on device */	u_char	eom	: 1;	/* end of media */	u_char	ili	: 1;	/* incorrect length indicator */	u_char		: 1;	/* reserved */	u_char	key	: 4;	/* sense key, see below */	/* bytes 3 through 6 */	u_char	info_0;		/* sense information byte 1 */	u_char	info_1;		/* sense information byte 2 */	u_char	info_2;		/* sense information byte 3 */	u_char	info_3;		/* sense information byte 4 */	/* bytes 7 through 13 */	u_char	add_len;	/* number of additional bytes */	u_char	optional_8;	/* search/copy src sense only */	u_char	optional_9;	/* search/copy dst sense only */	u_char	optional_10;	/* search/copy only */	u_char	optional_11;	/* search/copy only */	u_char	error;		/* error code */	u_char	error1;		/* error code qualifier */	/* bytes 14 through 15 */	u_char	optional_14;	/* reserved */	u_char	optional_15;	/* reserved */};#ifdef	ST_SYSGEN/* * Sense info returned by sysgen controllers.  Note, * this structure should always be 16 bytes or the controller * will not clear it's error condition.  Also, you must * always follow an error condition with a request sense cmd. */struct  sysgen_sense {	/* Bytes 0 - 3  */	u_char  disk_sense[4];		/* sense data from disk */	/* byte 4 */	u_char  valid4		:1;	/* some other bit set in this byte */	u_char  no_cart		:1;	/* no cartrige, or removed */	u_char  not_ready	:1;	/* drive not present */	u_char  write_prot	:1;	/* write protected */	u_char  eot		:1;	/* end of last track */	u_char  data_err	:1;	/* unrecoverable data error */	u_char  no_err		:1;	/* data transmitted not in error */	u_char file_mark	:1;	/* file mark detected */	/* byte 5 */	u_char  valid5		:1;	/* some other bit set in this byte */	u_char  illegal		:1;	/* illegal command */	u_char  no_data		:1;	/* unable to find data */	u_char  retries		:1;	/* 8 or more retries needed */	u_char  bot		:1;	/* beginning of tape */	u_char			:2;	/* reserved */	u_char  reset		:1;	/* power-on or reset since last op */	/* bytes 6 through 9 */	short   retry_ct;		/* retry count */	short   underruns;		/* number of underruns */	/* bytes 10 through 15 */	u_char   disk_xfer[3];		/* no. blks in last disk operation */	u_char   tape_xfer[3];		/* no. blks in last tape operation */};#endif	ST_SYSGEN

⌨️ 快捷键说明

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