|
|
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: *
1.1.1.2 ! root 38: * from: @(#)stvar.h 7.1 (Berkeley) 2/5/91
! 39: * stvar.h,v 1.2 1993/05/22 07:56:57 cgd Exp
1.1 root 40: */
41:
42: /*
43: * stvar.h scsi tape driver
44: */
45:
46: struct exb_xsense {
47: u_char reserved8;
48: u_char reserved9;
49: u_char reserved10;
50: u_char reserved11;
51: u_char addsens;
52: u_char addsensq;
53: u_char reserved14;
54: u_char reserved15;
55: u_char rwerrcnt2;
56: u_char rwerrcnt1;
57: u_char rwerrcnt0;
58: u_char pf: 1,
59: bpe: 1,
60: fpe: 1,
61: me: 1,
62: eco: 1,
63: tme: 1,
64: tnp: 1,
65: bot: 1;
66: u_char xfr: 1,
67: tmd: 1,
68: wp: 1,
69: fmke: 1,
70: ure: 1,
71: we1: 1,
72: sse: 1,
73: fe: 1;
74: u_char rsvd: 6,
75: wseb: 1,
76: wseo: 1;
77: u_char reserved22;
78: u_char tplft2;
79: u_char tplft1;
80: u_char tplft0;
81: };
82:
83: /* xsense sense key */
84: #define XSK_NOSENCE 0x0
85: #define XSK_NOTUSED1 0x1
86: #define XSK_NOTRDY 0x2
87: #define XSK_MEDERR 0x3
88: #define XSK_HRDWERR 0x4
89: #define XSK_ILLREQ 0x5
90: #define XSK_UNTATTEN 0x6
91: #define XSK_DATAPROT 0x7
92: #define XSK_BLNKCHK 0x8
93: #define XSK_VENDOR 0x9
94: #define XSK_CPYABORT 0xa
95: #define XSK_ABORTCMD 0xb
96: #define XSK_NOTUSEDC 0xc
97: #define XSK_VOLOVER 0xd
98: #define XSK_NOTUSEDE 0xe
99: #define XSK_REVERVED 0xf
100:
101: struct exb_inquiry {
102: char venderunique[16];
103: };
104:
105: struct st_mode {
106: u_char sdl;
107: u_char medtype;
108: u_char wp: 1, /* write protect */
109: bfmd: 3, /* buffered write mode */
110: speed: 4;
111: u_char bdl;
112: u_char dencod;
113: u_char numblk2; /* number of blocks */
114: u_char numblk1;
115: u_char numblk0;
116: u_char rsvd1;
117: u_char blklen2; /* block length */
118: u_char blklen1;
119: u_char blklen0;
120: };
121:
122: struct st_mode_exvup {
123: /* vender unique */
124: u_char ct: 1, /* international cartridge */
125: rs1: 1,
126: nd: 1, /* no disconnect, date transfer */
127: rs2: 1,
128: nbe: 1, /* no busy enable */
129: ebd: 1, /* even byte disconnect */
130: pe: 1, /* parity enable */
131: nal: 1; /* no auto load */
132: u_char rsvd: 7,
133: p5: 1;
134: u_char motionthres;
135: u_char reconthres;
136: u_char gapthres;
137: };
138:
139: struct mode_select_data {
140: u_char rsvd1;
141: u_char rsvd2;
142: u_char rsvd3: 1,
143: buff: 3,
144: speed: 4;
145: u_char blkdeslen;
146: u_char density;
147: u_char blks2;
148: u_char blks1;
149: u_char blks0;
150: u_char rsvd4;
151: u_char blklen2;
152: u_char blklen1;
153: u_char blklen0;
154: u_char vupb;
155: u_char rsvd5: 7,
156: p5: 1;
157: u_char motionthres;
158: u_char reconthres;
159: u_char gapthres;
160: };
161:
162: struct mode_sense {
163: struct st_mode md;
164: struct st_mode_exvup ex;
165: };
166:
167: #define EXDS_BITS \
168: "\20\20\
169: \7MOVED\6LEOT\5CMD\4WRTTN\3WMODE\2OPEN\1ALIV"
170:
171: #define EXER_BITS \
172: "\20\20VAL\17FMK\16EOM\15ILI\14KEY3\13KEY2\12KEY1\11KEY0\
173: \10RETRY7\7RETRY6\6RETRY5\5RETRY4\4RETRY3\3RETRY2\2RETRY1\1RETRY0"
174:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.