Commit | Line | Data |
---|---|---|
60f56dfc KM |
1 | /* |
2 | * Copyright (c) 1982, 1990 The Regents of the University of California. | |
3 | * All rights reserved. | |
4 | * | |
af359dea C |
5 | * Redistribution and use in source and binary forms, with or without |
6 | * modification, are permitted provided that the following conditions | |
7 | * are met: | |
8 | * 1. Redistributions of source code must retain the above copyright | |
9 | * notice, this list of conditions and the following disclaimer. | |
10 | * 2. Redistributions in binary form must reproduce the above copyright | |
11 | * notice, this list of conditions and the following disclaimer in the | |
12 | * documentation and/or other materials provided with the distribution. | |
13 | * 3. All advertising materials mentioning features or use of this software | |
14 | * must display the following acknowledgement: | |
15 | * This product includes software developed by the University of | |
16 | * California, Berkeley and its contributors. | |
17 | * 4. Neither the name of the University nor the names of its contributors | |
18 | * may be used to endorse or promote products derived from this software | |
19 | * without specific prior written permission. | |
60f56dfc | 20 | * |
af359dea C |
21 | * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND |
22 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | |
23 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | |
24 | * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE | |
25 | * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | |
26 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS | |
27 | * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | |
28 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | |
29 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | |
30 | * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | |
31 | * SUCH DAMAGE. | |
60f56dfc | 32 | * |
1c15e888 | 33 | * @(#)ctreg.h 7.1 (Berkeley) 5/8/90 |
60f56dfc KM |
34 | */ |
35 | ||
36 | struct ct_iocmd { | |
37 | char unit; | |
38 | char saddr; | |
39 | short addr0; | |
40 | long addr; | |
41 | char nop2; | |
42 | char slen; | |
43 | long len; | |
44 | char nop3; | |
45 | char cmd; | |
46 | }; | |
47 | ||
48 | struct ct_rscmd { | |
49 | char unit; | |
50 | char cmd; | |
51 | }; | |
52 | ||
53 | struct ct_stat { | |
54 | char c_vu; | |
55 | char c_pend; | |
56 | short c_ref; | |
57 | short c_fef; | |
58 | short c_aef; | |
59 | short c_ief; | |
60 | short c_blk0; | |
61 | long c_blk; | |
62 | char c_pad[4]; | |
63 | }; | |
64 | ||
65 | struct ct_ssmcmd { | |
66 | char unit; | |
67 | char cmd; | |
68 | short refm; | |
69 | short fefm; | |
70 | short aefm; | |
71 | short iefm; | |
72 | }; | |
73 | ||
74 | struct ct_srcmd { | |
75 | char unit; | |
76 | char nop; | |
77 | char cmd; | |
78 | char param; | |
79 | }; | |
80 | ||
81 | struct ct_soptcmd { | |
82 | char unit; | |
83 | char nop; | |
84 | char cmd; | |
85 | char opt; | |
86 | }; | |
87 | ||
88 | struct ct_ulcmd { | |
89 | char unit; | |
90 | char cmd; | |
91 | }; | |
92 | ||
93 | struct ct_wfmcmd { | |
94 | char unit; | |
95 | char cmd; | |
96 | }; | |
97 | ||
98 | struct ct_clearcmd { | |
99 | char unit; | |
100 | char cmd; | |
101 | }; | |
102 | ||
103 | struct ct_describe { | |
104 | u_int d_iuw:16, /* controller: installed unit word */ | |
105 | d_cmaxxfr:16, /* controller: max transfer rate (Kb) */ | |
106 | d_ctype:8, /* controller: controller type */ | |
107 | d_utype:8, /* unit: unit type */ | |
108 | d_name:24, /* unit: name (6 BCD digits) */ | |
109 | d_sectsize:16, /* unit: # of bytes per block (sector) */ | |
110 | d_blkbuf:8, /* unit: # of blocks which can be buffered */ | |
111 | d_burstsize:8, /* unit: recommended burst size */ | |
112 | d_blocktime:16, /* unit: block time (u-sec) */ | |
113 | d_uavexfr:16, /* unit: average transfer rate (Kb) */ | |
114 | d_retry:16, /* unit: optimal retry time (1/100-sec) */ | |
115 | d_access:16, /* unit: access time param (1/100-sec) */ | |
116 | d_maxint:8, /* unit: maximum interleave */ | |
117 | d_fvbyte:8, /* unit: fixed volume byte */ | |
118 | d_rvbyte:8, /* unit: removeable volume byte */ | |
119 | d_maxcyl:24, /* volume: maximum cylinder */ | |
120 | d_maxhead:8, /* volume: maximum head */ | |
121 | d_maxsect:16, /* volume: maximum sector on track */ | |
122 | d_maxvsecth:16, /* volume: maximum sector on volume (MSW) */ | |
123 | d_maxvsectl:32, /* volume: maximum sector on volume (LSWs) */ | |
124 | d_interleave:8; /* volume: current interleave */ | |
125 | }; | |
126 | ||
127 | #define CT7946ID 0x220 | |
128 | #define CT9145ID 0x268 | |
129 | #define CT9144ID 0x260 | |
130 | #define CT9144 0 | |
131 | #define CT7912PID 0x209 | |
132 | #define CT7914PID 0x20B | |
133 | #define CT88140 1 | |
134 | ||
135 | /* convert bytes to 1k tape block and back */ | |
136 | #define CTBTOK(x) ((x) >> 10) | |
137 | #define CTKTOB(x) ((x) << 10) | |
138 | ||
139 | #define CTCTLR 15 | |
140 | ||
141 | #define REF_MASK 0x0 | |
142 | #define FEF_MASK 0x0 | |
143 | #define AEF_MASK 0x0 | |
144 | #define IEF_MASK 0xF970 | |
145 | ||
146 | #define FEF_PF 0x0002 | |
147 | #define FEF_REXMT 0x0001 | |
148 | #define AEF_EOF 0x0010 | |
149 | #define AEF_EOV 0x0008 | |
150 | ||
151 | #define C_READ 0x00 | |
152 | #define C_WRITE 0x02 | |
153 | #define C_CLEAR 0x08 | |
154 | #define C_STATUS 0x0d | |
155 | #define C_SADDR 0x10 | |
156 | #define C_SLEN 0x18 | |
157 | #define C_SUNIT(x) (0x20 | (x)) | |
158 | #define C_SVOL(x) (0x40 | (x)) | |
159 | #define C_NOP 0x34 | |
160 | #define C_DESC 0x35 | |
161 | #define C_SOPT 0x38 | |
162 | #define C_SREL 0x3b | |
163 | #define C_SSM 0x3e | |
164 | #define C_WFM 0x49 | |
165 | #define C_UNLOAD 0x4a | |
166 | #define C_REL 0x140 | |
167 | ||
168 | #define C_CMD 0x05 | |
169 | #define C_EXEC 0x0e | |
170 | #define C_QSTAT 0x10 | |
171 | #define C_TCMD 0x12 | |
172 | ||
173 | #define C_CC 1 | |
174 | #define C_SKSPAR 2 | |
175 | #define C_OPT 4 | |
176 | #define C_SPAR 4 | |
177 | #define C_IMRPT 8 |