|
|
1.1 root 1: /*
2: * Copyright (c) 1990 University of Utah.
3: * Copyright (c) 1990 The Regents of the University of California.
4: * All rights reserved.
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: * Redistribution and use in source and binary forms, with or without
11: * modification, are permitted provided that the following conditions
12: * are met:
13: * 1. Redistributions of source code must retain the above copyright
14: * notice, this list of conditions and the following disclaimer.
15: * 2. Redistributions in binary form must reproduce the above copyright
16: * notice, this list of conditions and the following disclaimer in the
17: * documentation and/or other materials provided with the distribution.
18: * 3. All advertising materials mentioning features or use of this software
19: * must display the following acknowledgement:
20: * This product includes software developed by the University of
21: * California, Berkeley and its contributors.
22: * 4. Neither the name of the University nor the names of its contributors
23: * may be used to endorse or promote products derived from this software
24: * without specific prior written permission.
25: *
26: * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
27: * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
28: * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
29: * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
30: * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
31: * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
32: * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
33: * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
34: * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
35: * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
36: * SUCH DAMAGE.
37: *
38: * @(#)stvar.h 7.1 (Berkeley) 2/5/91
39: */
40:
41: /*
42: * stvar.h scsi tape driver
43: */
44:
45: struct exb_xsense {
46: u_char reserved8;
47: u_char reserved9;
48: u_char reserved10;
49: u_char reserved11;
50: u_char addsens;
51: u_char addsensq;
52: u_char reserved14;
53: u_char reserved15;
54: u_char rwerrcnt2;
55: u_char rwerrcnt1;
56: u_char rwerrcnt0;
57: u_char pf: 1,
58: bpe: 1,
59: fpe: 1,
60: me: 1,
61: eco: 1,
62: tme: 1,
63: tnp: 1,
64: bot: 1;
65: u_char xfr: 1,
66: tmd: 1,
67: wp: 1,
68: fmke: 1,
69: ure: 1,
70: we1: 1,
71: sse: 1,
72: fe: 1;
73: u_char rsvd: 6,
74: wseb: 1,
75: wseo: 1;
76: u_char reserved22;
77: u_char tplft2;
78: u_char tplft1;
79: u_char tplft0;
80: };
81:
82: /* xsense sense key */
83: #define XSK_NOSENCE 0x0
84: #define XSK_NOTUSED1 0x1
85: #define XSK_NOTRDY 0x2
86: #define XSK_MEDERR 0x3
87: #define XSK_HRDWERR 0x4
88: #define XSK_ILLREQ 0x5
89: #define XSK_UNTATTEN 0x6
90: #define XSK_DATAPROT 0x7
91: #define XSK_BLNKCHK 0x8
92: #define XSK_VENDOR 0x9
93: #define XSK_CPYABORT 0xa
94: #define XSK_ABORTCMD 0xb
95: #define XSK_NOTUSEDC 0xc
96: #define XSK_VOLOVER 0xd
97: #define XSK_NOTUSEDE 0xe
98: #define XSK_REVERVED 0xf
99:
100: struct exb_inquiry {
101: char venderunique[16];
102: };
103:
104: struct st_mode {
105: u_char sdl;
106: u_char medtype;
107: u_char wp: 1, /* write protect */
108: bfmd: 3, /* buffered write mode */
109: speed: 4;
110: u_char bdl;
111: u_char dencod;
112: u_char numblk2; /* number of blocks */
113: u_char numblk1;
114: u_char numblk0;
115: u_char rsvd1;
116: u_char blklen2; /* block length */
117: u_char blklen1;
118: u_char blklen0;
119: };
120:
121: struct st_mode_exvup {
122: /* vender unique */
123: u_char ct: 1, /* international cartridge */
124: rs1: 1,
125: nd: 1, /* no disconnect, date transfer */
126: rs2: 1,
127: nbe: 1, /* no busy enable */
128: ebd: 1, /* even byte disconnect */
129: pe: 1, /* parity enable */
130: nal: 1; /* no auto load */
131: u_char rsvd: 7,
132: p5: 1;
133: u_char motionthres;
134: u_char reconthres;
135: u_char gapthres;
136: };
137:
138: struct mode_select_data {
139: u_char rsvd1;
140: u_char rsvd2;
141: u_char rsvd3: 1,
142: buff: 3,
143: speed: 4;
144: u_char blkdeslen;
145: u_char density;
146: u_char blks2;
147: u_char blks1;
148: u_char blks0;
149: u_char rsvd4;
150: u_char blklen2;
151: u_char blklen1;
152: u_char blklen0;
153: u_char vupb;
154: u_char rsvd5: 7,
155: p5: 1;
156: u_char motionthres;
157: u_char reconthres;
158: u_char gapthres;
159: };
160:
161: struct mode_sense {
162: struct st_mode md;
163: struct st_mode_exvup ex;
164: };
165:
166: #define EXDS_BITS \
167: "\20\20\
168: \7MOVED\6LEOT\5CMD\4WRTTN\3WMODE\2OPEN\1ALIV"
169:
170: #define EXER_BITS \
171: "\20\20VAL\17FMK\16EOM\15ILI\14KEY3\13KEY2\12KEY1\11KEY0\
172: \10RETRY7\7RETRY6\6RETRY5\5RETRY4\4RETRY3\3RETRY2\2RETRY1\1RETRY0"
173:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.