|
|
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.