xref: /csrg-svn/sys/hp300/dev/stvar.h (revision 63151)
146286Smckusick /*
246286Smckusick  * Copyright (c) 1990 University of Utah.
3*63151Sbostic  * Copyright (c) 1990, 1993
4*63151Sbostic  *	The Regents of the University of California.  All rights reserved.
546286Smckusick  *
646286Smckusick  * This code is derived from software contributed to Berkeley by
746286Smckusick  * the Systems Programming Group of the University of Utah Computer
846286Smckusick  * Science Department.
946286Smckusick  *
1046286Smckusick  * %sccs.include.redist.c%
1146286Smckusick  *
12*63151Sbostic  *      @(#)stvar.h	8.1 (Berkeley) 06/10/93
1346286Smckusick  */
1446286Smckusick 
1546286Smckusick /*
1646286Smckusick  * stvar.h scsi tape driver
1746286Smckusick  */
1846286Smckusick 
1946286Smckusick struct exb_xsense {
2046286Smckusick 	u_char  reserved8;
2146286Smckusick 	u_char  reserved9;
2246286Smckusick 	u_char  reserved10;
2346286Smckusick 	u_char  reserved11;
2446286Smckusick 	u_char  addsens;
2546286Smckusick 	u_char  addsensq;
2646286Smckusick 	u_char  reserved14;
2746286Smckusick 	u_char  reserved15;
2846286Smckusick 	u_char  rwerrcnt2;
2946286Smckusick 	u_char  rwerrcnt1;
3046286Smckusick 	u_char  rwerrcnt0;
3146286Smckusick 	u_char  pf: 1,
3246286Smckusick 		bpe: 1,
3346286Smckusick 		fpe: 1,
3446286Smckusick 		me: 1,
3546286Smckusick 		eco: 1,
3646286Smckusick 		tme: 1,
3746286Smckusick 		tnp: 1,
3846286Smckusick 		bot: 1;
3946286Smckusick 	u_char  xfr: 1,
4046286Smckusick 		tmd: 1,
4146286Smckusick  		wp: 1,
4246286Smckusick 		fmke: 1,
4346286Smckusick        		ure: 1,
4446286Smckusick 		we1: 1,
4546286Smckusick 		sse: 1,
4646286Smckusick 		fe: 1;
4746286Smckusick 	u_char  rsvd: 6,
4846286Smckusick 		wseb: 1,
4946286Smckusick 		wseo: 1;
5046286Smckusick 	u_char  reserved22;
5146286Smckusick 	u_char  tplft2;
5246286Smckusick 	u_char  tplft1;
5346286Smckusick 	u_char  tplft0;
5446286Smckusick };
5546286Smckusick 
5646286Smckusick /* xsense sense key */
5746286Smckusick #define XSK_NOSENCE	0x0
5846286Smckusick #define XSK_NOTUSED1	0x1
5946286Smckusick #define XSK_NOTRDY	0x2
6046286Smckusick #define XSK_MEDERR	0x3
6146286Smckusick #define XSK_HRDWERR	0x4
6246286Smckusick #define XSK_ILLREQ	0x5
6346286Smckusick #define XSK_UNTATTEN	0x6
6446286Smckusick #define XSK_DATAPROT	0x7
6546286Smckusick #define XSK_BLNKCHK	0x8
6646286Smckusick #define XSK_VENDOR	0x9
6746286Smckusick #define XSK_CPYABORT	0xa
6846286Smckusick #define XSK_ABORTCMD	0xb
6946286Smckusick #define XSK_NOTUSEDC	0xc
7046286Smckusick #define XSK_VOLOVER	0xd
7146286Smckusick #define XSK_NOTUSEDE	0xe
7246286Smckusick #define XSK_REVERVED	0xf
7346286Smckusick 
7446286Smckusick struct  exb_inquiry {
7546286Smckusick 	char	venderunique[16];
7646286Smckusick };
7746286Smckusick 
7846286Smckusick struct	st_mode {
7946286Smckusick 	u_char	sdl;
8046286Smckusick 	u_char  medtype;
8146286Smckusick 	u_char  wp: 1,		/* write protect */
8246286Smckusick 		bfmd: 3,	/* buffered write mode */
8346286Smckusick 		speed: 4;
8446286Smckusick 	u_char	bdl;
8546286Smckusick 	u_char	dencod;
8646286Smckusick 	u_char	numblk2;	/* number of blocks */
8746286Smckusick 	u_char	numblk1;
8846286Smckusick 	u_char	numblk0;
8946286Smckusick 	u_char	rsvd1;
9046286Smckusick 	u_char	blklen2;	/* block length */
9146286Smckusick 	u_char	blklen1;
9246286Smckusick 	u_char	blklen0;
9346286Smckusick };
9446286Smckusick 
9546286Smckusick struct st_mode_exvup {
9646286Smckusick 	/* vender unique */
9746286Smckusick 	u_char	ct: 1,		/* international cartridge */
9846286Smckusick 		rs1: 1,
9946286Smckusick 		nd: 1,		/* no disconnect, date transfer */
10046286Smckusick 		rs2: 1,
10146286Smckusick 		nbe: 1,		/* no busy enable */
10246286Smckusick 		ebd: 1,		/* even byte disconnect */
10346286Smckusick 		pe: 1,		/* parity enable */
10446286Smckusick 		nal: 1;		/* no auto load */
10546286Smckusick 	u_char	rsvd: 7,
10646286Smckusick 		p5: 1;
10746286Smckusick 	u_char	motionthres;
10846286Smckusick 	u_char	reconthres;
10946286Smckusick 	u_char	gapthres;
11046286Smckusick };
11146286Smckusick 
11246286Smckusick struct mode_select_data {
11346286Smckusick 	u_char	rsvd1;
11446286Smckusick 	u_char	rsvd2;
11546286Smckusick 	u_char	rsvd3: 1,
11646286Smckusick 		buff: 3,
11746286Smckusick 		speed: 4;
11846286Smckusick 	u_char  blkdeslen;
11946286Smckusick 	u_char	density;
12046286Smckusick 	u_char	blks2;
12146286Smckusick 	u_char	blks1;
12246286Smckusick 	u_char	blks0;
12346286Smckusick 	u_char	rsvd4;
12446286Smckusick 	u_char	blklen2;
12546286Smckusick 	u_char	blklen1;
12646286Smckusick 	u_char	blklen0;
12746286Smckusick 	u_char	vupb;
12846286Smckusick 	u_char	rsvd5: 7,
12946286Smckusick 		p5: 1;
13046286Smckusick 	u_char	motionthres;
13146286Smckusick 	u_char	reconthres;
13246286Smckusick  	u_char	gapthres;
13346286Smckusick };
13446286Smckusick 
13546286Smckusick struct mode_sense {
13646286Smckusick 	struct st_mode md;
13746286Smckusick 	struct st_mode_exvup ex;
13846286Smckusick };
13946286Smckusick 
14046286Smckusick #define EXDS_BITS \
14146286Smckusick "\20\20\
14246286Smckusick \7MOVED\6LEOT\5CMD\4WRTTN\3WMODE\2OPEN\1ALIV"
14346286Smckusick 
14446286Smckusick #define EXER_BITS \
14546286Smckusick "\20\20VAL\17FMK\16EOM\15ILI\14KEY3\13KEY2\12KEY1\11KEY0\
14646286Smckusick \10RETRY7\7RETRY6\6RETRY5\5RETRY4\4RETRY3\3RETRY2\2RETRY1\1RETRY0"
14746286Smckusick 
148