|
|
1.1 ! root 1: /* ! 2: * Copyright (c) 1982, 1986 The Regents of the University of California. ! 3: * All rights reserved. ! 4: * ! 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. ! 20: * ! 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. ! 32: * ! 33: * @(#)mtio.h 7.6 (Berkeley) 2/5/91 ! 34: */ ! 35: ! 36: /* ! 37: * Structures and definitions for mag tape io control commands ! 38: */ ! 39: ! 40: /* structure for MTIOCTOP - mag tape op command */ ! 41: struct mtop { ! 42: short mt_op; /* operations defined below */ ! 43: daddr_t mt_count; /* how many of them */ ! 44: }; ! 45: ! 46: /* operations */ ! 47: #define MTWEOF 0 /* write an end-of-file record */ ! 48: #define MTFSF 1 /* forward space file */ ! 49: #define MTBSF 2 /* backward space file */ ! 50: #define MTFSR 3 /* forward space record */ ! 51: #define MTBSR 4 /* backward space record */ ! 52: #define MTREW 5 /* rewind */ ! 53: #define MTOFFL 6 /* rewind and put the drive offline */ ! 54: #define MTNOP 7 /* no operation, sets status only */ ! 55: #define MTCACHE 8 /* enable controller cache */ ! 56: #define MTNOCACHE 9 /* disable controller cache */ ! 57: ! 58: /* structure for MTIOCGET - mag tape get status command */ ! 59: ! 60: struct mtget { ! 61: short mt_type; /* type of magtape device */ ! 62: /* the following two registers are grossly device dependent */ ! 63: short mt_dsreg; /* ``drive status'' register */ ! 64: short mt_erreg; /* ``error'' register */ ! 65: /* end device-dependent registers */ ! 66: short mt_resid; /* residual count */ ! 67: /* the following two are not yet implemented */ ! 68: daddr_t mt_fileno; /* file number of current position */ ! 69: daddr_t mt_blkno; /* block number of current position */ ! 70: /* end not yet implemented */ ! 71: }; ! 72: ! 73: /* ! 74: * Constants for mt_type byte. These are the same ! 75: * for controllers compatible with the types listed. ! 76: */ ! 77: #define MT_ISTS 0x01 /* TS-11 */ ! 78: #define MT_ISHT 0x02 /* TM03 Massbus: TE16, TU45, TU77 */ ! 79: #define MT_ISTM 0x03 /* TM11/TE10 Unibus */ ! 80: #define MT_ISMT 0x04 /* TM78/TU78 Massbus */ ! 81: #define MT_ISUT 0x05 /* SI TU-45 emulation on Unibus */ ! 82: #define MT_ISCPC 0x06 /* SUN */ ! 83: #define MT_ISAR 0x07 /* SUN */ ! 84: #define MT_ISTMSCP 0x08 /* DEC TMSCP protocol (TU81, TK50) */ ! 85: #define MT_ISCY 0x09 /* CCI Cipher */ ! 86: #define MT_ISCT 0x0a /* HP 1/4 tape */ ! 87: #define MT_ISFHP 0x0b /* HP 7980 1/2 tape */ ! 88: #define MT_ISEXABYTE 0x0c /* Exabyte */ ! 89: #define MT_ISEXA8200 0x0c /* Exabyte EXB-8200 */ ! 90: #define MT_ISEXA8500 0x0d /* Exabyte EXB-8500 */ ! 91: #define MT_ISVIPER1 0x0e /* Archive Viper-150 */ ! 92: #define MT_ISPYTHON 0x0f /* Archive Python (DAT) */ ! 93: #define MT_ISHPDAT 0x10 /* HP 35450A DAT drive */ ! 94: ! 95: /* mag tape io control commands */ ! 96: #define MTIOCTOP _IOW('m', 1, struct mtop) /* do a mag tape op */ ! 97: #define MTIOCGET _IOR('m', 2, struct mtget) /* get tape status */ ! 98: #define MTIOCIEOT _IO('m', 3) /* ignore EOT error */ ! 99: #define MTIOCEEOT _IO('m', 4) /* enable EOT error */ ! 100: ! 101: #ifndef KERNEL ! 102: #define DEFTAPE "/dev/rmt12" ! 103: #endif ! 104: ! 105: #ifdef KERNEL ! 106: /* ! 107: * minor device number ! 108: */ ! 109: ! 110: #define T_UNIT 003 /* unit selection */ ! 111: #define T_NOREWIND 004 /* no rewind on close */ ! 112: #define T_DENSEL 030 /* density select */ ! 113: #define T_800BPI 000 /* select 800 bpi */ ! 114: #define T_1600BPI 010 /* select 1600 bpi */ ! 115: #define T_6250BPI 020 /* select 6250 bpi */ ! 116: #define T_BADBPI 030 /* undefined selection */ ! 117: #endif
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.