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