xref: /csrg-svn/sys/hp300/dev/stvar.h (revision 46286)
1*46286Smckusick /*
2*46286Smckusick  * Copyright (c) 1990 University of Utah.
3*46286Smckusick  * Copyright (c) 1990 The Regents of the University of California.
4*46286Smckusick  * All rights reserved.
5*46286Smckusick  *
6*46286Smckusick  * This code is derived from software contributed to Berkeley by
7*46286Smckusick  * the Systems Programming Group of the University of Utah Computer
8*46286Smckusick  * Science Department.
9*46286Smckusick  *
10*46286Smckusick  * %sccs.include.redist.c%
11*46286Smckusick  *
12*46286Smckusick  *      @(#)stvar.h	7.1 (Berkeley) 02/05/91
13*46286Smckusick  */
14*46286Smckusick 
15*46286Smckusick /*
16*46286Smckusick  * stvar.h scsi tape driver
17*46286Smckusick  */
18*46286Smckusick 
19*46286Smckusick struct exb_xsense {
20*46286Smckusick 	u_char  reserved8;
21*46286Smckusick 	u_char  reserved9;
22*46286Smckusick 	u_char  reserved10;
23*46286Smckusick 	u_char  reserved11;
24*46286Smckusick 	u_char  addsens;
25*46286Smckusick 	u_char  addsensq;
26*46286Smckusick 	u_char  reserved14;
27*46286Smckusick 	u_char  reserved15;
28*46286Smckusick 	u_char  rwerrcnt2;
29*46286Smckusick 	u_char  rwerrcnt1;
30*46286Smckusick 	u_char  rwerrcnt0;
31*46286Smckusick 	u_char  pf: 1,
32*46286Smckusick 		bpe: 1,
33*46286Smckusick 		fpe: 1,
34*46286Smckusick 		me: 1,
35*46286Smckusick 		eco: 1,
36*46286Smckusick 		tme: 1,
37*46286Smckusick 		tnp: 1,
38*46286Smckusick 		bot: 1;
39*46286Smckusick 	u_char  xfr: 1,
40*46286Smckusick 		tmd: 1,
41*46286Smckusick  		wp: 1,
42*46286Smckusick 		fmke: 1,
43*46286Smckusick        		ure: 1,
44*46286Smckusick 		we1: 1,
45*46286Smckusick 		sse: 1,
46*46286Smckusick 		fe: 1;
47*46286Smckusick 	u_char  rsvd: 6,
48*46286Smckusick 		wseb: 1,
49*46286Smckusick 		wseo: 1;
50*46286Smckusick 	u_char  reserved22;
51*46286Smckusick 	u_char  tplft2;
52*46286Smckusick 	u_char  tplft1;
53*46286Smckusick 	u_char  tplft0;
54*46286Smckusick };
55*46286Smckusick 
56*46286Smckusick /* xsense sense key */
57*46286Smckusick #define XSK_NOSENCE	0x0
58*46286Smckusick #define XSK_NOTUSED1	0x1
59*46286Smckusick #define XSK_NOTRDY	0x2
60*46286Smckusick #define XSK_MEDERR	0x3
61*46286Smckusick #define XSK_HRDWERR	0x4
62*46286Smckusick #define XSK_ILLREQ	0x5
63*46286Smckusick #define XSK_UNTATTEN	0x6
64*46286Smckusick #define XSK_DATAPROT	0x7
65*46286Smckusick #define XSK_BLNKCHK	0x8
66*46286Smckusick #define XSK_VENDOR	0x9
67*46286Smckusick #define XSK_CPYABORT	0xa
68*46286Smckusick #define XSK_ABORTCMD	0xb
69*46286Smckusick #define XSK_NOTUSEDC	0xc
70*46286Smckusick #define XSK_VOLOVER	0xd
71*46286Smckusick #define XSK_NOTUSEDE	0xe
72*46286Smckusick #define XSK_REVERVED	0xf
73*46286Smckusick 
74*46286Smckusick struct  exb_inquiry {
75*46286Smckusick 	char	venderunique[16];
76*46286Smckusick };
77*46286Smckusick 
78*46286Smckusick struct	st_mode {
79*46286Smckusick 	u_char	sdl;
80*46286Smckusick 	u_char  medtype;
81*46286Smckusick 	u_char  wp: 1,		/* write protect */
82*46286Smckusick 		bfmd: 3,	/* buffered write mode */
83*46286Smckusick 		speed: 4;
84*46286Smckusick 	u_char	bdl;
85*46286Smckusick 	u_char	dencod;
86*46286Smckusick 	u_char	numblk2;	/* number of blocks */
87*46286Smckusick 	u_char	numblk1;
88*46286Smckusick 	u_char	numblk0;
89*46286Smckusick 	u_char	rsvd1;
90*46286Smckusick 	u_char	blklen2;	/* block length */
91*46286Smckusick 	u_char	blklen1;
92*46286Smckusick 	u_char	blklen0;
93*46286Smckusick };
94*46286Smckusick 
95*46286Smckusick struct st_mode_exvup {
96*46286Smckusick 	/* vender unique */
97*46286Smckusick 	u_char	ct: 1,		/* international cartridge */
98*46286Smckusick 		rs1: 1,
99*46286Smckusick 		nd: 1,		/* no disconnect, date transfer */
100*46286Smckusick 		rs2: 1,
101*46286Smckusick 		nbe: 1,		/* no busy enable */
102*46286Smckusick 		ebd: 1,		/* even byte disconnect */
103*46286Smckusick 		pe: 1,		/* parity enable */
104*46286Smckusick 		nal: 1;		/* no auto load */
105*46286Smckusick 	u_char	rsvd: 7,
106*46286Smckusick 		p5: 1;
107*46286Smckusick 	u_char	motionthres;
108*46286Smckusick 	u_char	reconthres;
109*46286Smckusick 	u_char	gapthres;
110*46286Smckusick };
111*46286Smckusick 
112*46286Smckusick struct mode_select_data {
113*46286Smckusick 	u_char	rsvd1;
114*46286Smckusick 	u_char	rsvd2;
115*46286Smckusick 	u_char	rsvd3: 1,
116*46286Smckusick 		buff: 3,
117*46286Smckusick 		speed: 4;
118*46286Smckusick 	u_char  blkdeslen;
119*46286Smckusick 	u_char	density;
120*46286Smckusick 	u_char	blks2;
121*46286Smckusick 	u_char	blks1;
122*46286Smckusick 	u_char	blks0;
123*46286Smckusick 	u_char	rsvd4;
124*46286Smckusick 	u_char	blklen2;
125*46286Smckusick 	u_char	blklen1;
126*46286Smckusick 	u_char	blklen0;
127*46286Smckusick 	u_char	vupb;
128*46286Smckusick 	u_char	rsvd5: 7,
129*46286Smckusick 		p5: 1;
130*46286Smckusick 	u_char	motionthres;
131*46286Smckusick 	u_char	reconthres;
132*46286Smckusick  	u_char	gapthres;
133*46286Smckusick };
134*46286Smckusick 
135*46286Smckusick struct mode_sense {
136*46286Smckusick 	struct st_mode md;
137*46286Smckusick 	struct st_mode_exvup ex;
138*46286Smckusick };
139*46286Smckusick 
140*46286Smckusick #define EXDS_BITS \
141*46286Smckusick "\20\20\
142*46286Smckusick \7MOVED\6LEOT\5CMD\4WRTTN\3WMODE\2OPEN\1ALIV"
143*46286Smckusick 
144*46286Smckusick #define EXER_BITS \
145*46286Smckusick "\20\20VAL\17FMK\16EOM\15ILI\14KEY3\13KEY2\12KEY1\11KEY0\
146*46286Smckusick \10RETRY7\7RETRY6\6RETRY5\5RETRY4\4RETRY3\3RETRY2\2RETRY1\1RETRY0"
147*46286Smckusick 
148