|
|
1.1 root 1: /*
2: * Copyright (c) 1982, 1990 The Regents of the University of California.
3: * All rights reserved.
4: *
5: * Redistribution is only permitted until one year after the first shipment
6: * of 4.4BSD by the Regents. Otherwise, redistribution and use in source and
7: * binary forms are permitted provided that: (1) source distributions retain
8: * this entire copyright notice and comment, and (2) distributions including
9: * binaries display the following acknowledgement: This product includes
10: * software developed by the University of California, Berkeley and its
11: * contributors'' in the documentation or other materials provided with the
12: * distribution and in all advertising materials mentioning features or use
13: * of this software. Neither the name of the University nor the names of
14: * its contributors may be used to endorse or promote products derived from
15: * this software without specific prior written permission.
16: * THIS SOFTWARE IS PROVIDED AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
17: * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
18: * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
19: *
20: * @(#)ctreg.h 7.1 (Berkeley) 5/8/90
21: */
22:
23: struct ct_iocmd {
24: char unit;
25: char saddr;
26: short addr0;
27: long addr;
28: char nop2;
29: char slen;
30: long len;
31: char nop3;
32: char cmd;
33: };
34:
35: struct ct_rscmd {
36: char unit;
37: char cmd;
38: };
39:
40: struct ct_stat {
41: char c_vu;
42: char c_pend;
43: short c_ref;
44: short c_fef;
45: short c_aef;
46: short c_ief;
47: short c_blk0;
48: long c_blk;
49: char c_pad[4];
50: };
51:
52: struct ct_ssmcmd {
53: char unit;
54: char cmd;
55: short refm;
56: short fefm;
57: short aefm;
58: short iefm;
59: };
60:
61: struct ct_srcmd {
62: char unit;
63: char nop;
64: char cmd;
65: char param;
66: };
67:
68: struct ct_soptcmd {
69: char unit;
70: char nop;
71: char cmd;
72: char opt;
73: };
74:
75: struct ct_ulcmd {
76: char unit;
77: char cmd;
78: };
79:
80: struct ct_wfmcmd {
81: char unit;
82: char cmd;
83: };
84:
85: struct ct_clearcmd {
86: char unit;
87: char cmd;
88: };
89:
90: struct ct_describe {
91: u_int d_iuw:16, /* controller: installed unit word */
92: d_cmaxxfr:16, /* controller: max transfer rate (Kb) */
93: d_ctype:8, /* controller: controller type */
94: d_utype:8, /* unit: unit type */
95: d_name:24, /* unit: name (6 BCD digits) */
96: d_sectsize:16, /* unit: # of bytes per block (sector) */
97: d_blkbuf:8, /* unit: # of blocks which can be buffered */
98: d_burstsize:8, /* unit: recommended burst size */
99: d_blocktime:16, /* unit: block time (u-sec) */
100: d_uavexfr:16, /* unit: average transfer rate (Kb) */
101: d_retry:16, /* unit: optimal retry time (1/100-sec) */
102: d_access:16, /* unit: access time param (1/100-sec) */
103: d_maxint:8, /* unit: maximum interleave */
104: d_fvbyte:8, /* unit: fixed volume byte */
105: d_rvbyte:8, /* unit: removeable volume byte */
106: d_maxcyl:24, /* volume: maximum cylinder */
107: d_maxhead:8, /* volume: maximum head */
108: d_maxsect:16, /* volume: maximum sector on track */
109: d_maxvsecth:16, /* volume: maximum sector on volume (MSW) */
110: d_maxvsectl:32, /* volume: maximum sector on volume (LSWs) */
111: d_interleave:8; /* volume: current interleave */
112: };
113:
114: #define CT7946ID 0x220
115: #define CT9145ID 0x268
116: #define CT9144ID 0x260
117: #define CT9144 0
118: #define CT7912PID 0x209
119: #define CT7914PID 0x20B
120: #define CT88140 1
121:
122: /* convert bytes to 1k tape block and back */
123: #define CTBTOK(x) ((x) >> 10)
124: #define CTKTOB(x) ((x) << 10)
125:
126: #define CTCTLR 15
127:
128: #define REF_MASK 0x0
129: #define FEF_MASK 0x0
130: #define AEF_MASK 0x0
131: #define IEF_MASK 0xF970
132:
133: #define FEF_PF 0x0002
134: #define FEF_REXMT 0x0001
135: #define AEF_EOF 0x0010
136: #define AEF_EOV 0x0008
137:
138: #define C_READ 0x00
139: #define C_WRITE 0x02
140: #define C_CLEAR 0x08
141: #define C_STATUS 0x0d
142: #define C_SADDR 0x10
143: #define C_SLEN 0x18
144: #define C_SUNIT(x) (0x20 | (x))
145: #define C_SVOL(x) (0x40 | (x))
146: #define C_NOP 0x34
147: #define C_DESC 0x35
148: #define C_SOPT 0x38
149: #define C_SREL 0x3b
150: #define C_SSM 0x3e
151: #define C_WFM 0x49
152: #define C_UNLOAD 0x4a
153: #define C_REL 0x140
154:
155: #define C_CMD 0x05
156: #define C_EXEC 0x0e
157: #define C_QSTAT 0x10
158: #define C_TCMD 0x12
159:
160: #define C_CC 1
161: #define C_SKSPAR 2
162: #define C_OPT 4
163: #define C_SPAR 4
164: #define C_IMRPT 8
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.