|
|
1.1 ! root 1: /* ! 2: * Copyright (c) 1999 Apple Computer, Inc. All rights reserved. ! 3: * ! 4: * @APPLE_LICENSE_HEADER_START@ ! 5: * ! 6: * Portions Copyright (c) 1999 Apple Computer, Inc. All Rights ! 7: * Reserved. This file contains Original Code and/or Modifications of ! 8: * Original Code as defined in and that are subject to the Apple Public ! 9: * Source License Version 1.1 (the "License"). You may not use this file ! 10: * except in compliance with the License. Please obtain a copy of the ! 11: * License at http://www.apple.com/publicsource and read it before using ! 12: * this file. ! 13: * ! 14: * The Original Code and all software distributed under the License are ! 15: * distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER ! 16: * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, ! 17: * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, ! 18: * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT. Please see the ! 19: * License for the specific language governing rights and limitations ! 20: * under the License. ! 21: * ! 22: * @APPLE_LICENSE_HEADER_END@ ! 23: */ ! 24: ! 25: /* Copyright (c) 1995 NeXT Computer, Inc. All Rights Reserved */ ! 26: /* ! 27: * Copyright (c) 1982, 1986, 1993 ! 28: * The Regents of the University of California. All rights reserved. ! 29: * ! 30: * Redistribution and use in source and binary forms, with or without ! 31: * modification, are permitted provided that the following conditions ! 32: * are met: ! 33: * 1. Redistributions of source code must retain the above copyright ! 34: * notice, this list of conditions and the following disclaimer. ! 35: * 2. Redistributions in binary form must reproduce the above copyright ! 36: * notice, this list of conditions and the following disclaimer in the ! 37: * documentation and/or other materials provided with the distribution. ! 38: * 3. All advertising materials mentioning features or use of this software ! 39: * must display the following acknowledgement: ! 40: * This product includes software developed by the University of ! 41: * California, Berkeley and its contributors. ! 42: * 4. Neither the name of the University nor the names of its contributors ! 43: * may be used to endorse or promote products derived from this software ! 44: * without specific prior written permission. ! 45: * ! 46: * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ! 47: * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE ! 48: * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ! 49: * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE ! 50: * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL ! 51: * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS ! 52: * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ! 53: * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT ! 54: * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY ! 55: * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF ! 56: * SUCH DAMAGE. ! 57: * ! 58: * @(#)mtio.h 8.1 (Berkeley) 6/2/93 ! 59: */ ! 60: ! 61: #ifndef _SYS_MTIO_H_ ! 62: #define _SYS_MTIO_H_ ! 63: ! 64: /* ! 65: * Structures and definitions for mag tape io control commands ! 66: */ ! 67: ! 68: /* structure for MTIOCTOP - mag tape op command */ ! 69: struct mtop { ! 70: short mt_op; /* operations defined below */ ! 71: daddr_t mt_count; /* how many of them */ ! 72: }; ! 73: ! 74: /* operations */ ! 75: #define MTWEOF 0 /* write an end-of-file record */ ! 76: #define MTFSF 1 /* forward space file */ ! 77: #define MTBSF 2 /* backward space file */ ! 78: #define MTFSR 3 /* forward space record */ ! 79: #define MTBSR 4 /* backward space record */ ! 80: #define MTREW 5 /* rewind */ ! 81: #define MTOFFL 6 /* rewind and put the drive offline */ ! 82: #define MTNOP 7 /* no operation, sets status only */ ! 83: #define MTRETEN 8 /* retension */ ! 84: #define MTERASE 9 /* erase entire tape */ ! 85: #define MTEOM 10 /* forward to end of media */ ! 86: #define MTNBSF 11 /* backward space to beginning of file */ ! 87: #define MTCACHE 12 /* enable controller cache */ ! 88: #define MTNOCACHE 13 /* disable controller cache */ ! 89: #define MTSETBSIZ 14 /* set block size; 0 for variable */ ! 90: #define MTSETDNSTY 15 /* set density code for current mode */ ! 91: ! 92: /* structure for MTIOCGET - mag tape get status command */ ! 93: ! 94: struct mtget { ! 95: short mt_type; /* type of magtape device */ ! 96: /* the following two registers are grossly device dependent */ ! 97: u_short mt_dsreg; /* ``drive status'' register. SCSI sense byte 0x02. */ ! 98: u_short mt_erreg; /* ``error'' register. SCSI sense byte 0x0C. */ ! 99: u_short mt_ext_err0; /* SCSI sense bytes 0x13..0x14 */ ! 100: u_short mt_ext_err1; /* SCSI sense bytes 0x15..0x16 */ ! 101: /* end device-dependent registers */ ! 102: short mt_resid; /* residual count */ ! 103: /* the following two are not yet implemented */ ! 104: daddr_t mt_fileno; /* file number of current position */ ! 105: daddr_t mt_blkno; /* block number of current position */ ! 106: /* end not yet implemented */ ! 107: daddr_t mt_blksiz; /* current block size */ ! 108: daddr_t mt_density; /* current density code */ ! 109: daddr_t mt_mblksiz[4]; /* block size for different modes */ ! 110: daddr_t mt_mdensity[4]; /* density codes for different modes */ ! 111: }; ! 112: ! 113: /* ! 114: * Constants for mt_type byte. These are the same ! 115: * for controllers compatible with the types listed. ! 116: */ ! 117: #define MT_ISTS 0x01 /* TS-11 */ ! 118: #define MT_ISHT 0x02 /* TM03 Massbus: TE16, TU45, TU77 */ ! 119: #define MT_ISTM 0x03 /* TM11/TE10 Unibus */ ! 120: #define MT_ISMT 0x04 /* TM78/TU78 Massbus */ ! 121: #define MT_ISUT 0x05 /* SI TU-45 emulation on Unibus */ ! 122: #define MT_ISCPC 0x06 /* SUN */ ! 123: #define MT_ISAR 0x07 /* SUN */ ! 124: #define MT_ISTMSCP 0x08 /* DEC TMSCP protocol (TU81, TK50) */ ! 125: #define MT_ISCY 0x09 /* CCI Cipher */ ! 126: #define MT_ISCT 0x0a /* HP 1/4 tape */ ! 127: #define MT_ISFHP 0x0b /* HP 7980 1/2 tape */ ! 128: #define MT_ISEXABYTE 0x0c /* Exabyte */ ! 129: #define MT_ISEXA8200 0x0c /* Exabyte EXB-8200 */ ! 130: #define MT_ISEXA8500 0x0d /* Exabyte EXB-8500 */ ! 131: #define MT_ISVIPER1 0x0e /* Archive Viper-150 */ ! 132: #define MT_ISPYTHON 0x0f /* Archive Python (DAT) */ ! 133: #define MT_ISHPDAT 0x10 /* HP 35450A DAT drive */ ! 134: #define MT_ISWANGTEK 0x11 /* WANGTEK 5150ES */ ! 135: #define MT_ISCALIPER 0x12 /* Caliper CP150 */ ! 136: #define MT_ISWTEK5099 0x13 /* WANGTEK 5099ES */ ! 137: #define MT_ISVIPER2525 0x14 /* Archive Viper 2525 */ ! 138: #define MT_ISMFOUR 0x11 /* M4 Data 1/2 9track drive */ ! 139: #define MT_ISTK50 0x12 /* DEC SCSI TK50 */ ! 140: #define MT_ISMT02 0x13 /* Emulex MT02 SCSI tape controller */ ! 141: #define MT_ISGS 0x14 /* Generic SCSI Tape */ ! 142: ! 143: /* mag tape io control commands */ ! 144: #define MTIOCTOP _IOW('m', 1, struct mtop) /* do a mag tape op */ ! 145: #define MTIOCGET _IOR('m', 2, struct mtget) /* get tape status */ ! 146: #define MTIOCIEOT _IO('m', 3) /* ignore EOT error */ ! 147: #define MTIOCEEOT _IO('m', 4) /* enable EOT error */ ! 148: ! 149: #ifndef _KERNEL ! 150: #define DEFTAPE "/dev/rst0" ! 151: #endif ! 152: ! 153: #ifdef _KERNEL ! 154: /* ! 155: * minor device number ! 156: */ ! 157: ! 158: #define T_UNIT 003 /* unit selection */ ! 159: #define T_NOREWIND 004 /* no rewind on close */ ! 160: #define T_DENSEL 030 /* density select */ ! 161: #define T_800BPI 000 /* select 800 bpi */ ! 162: #define T_1600BPI 010 /* select 1600 bpi */ ! 163: #define T_6250BPI 020 /* select 6250 bpi */ ! 164: #define T_BADBPI 030 /* undefined selection */ ! 165: #endif ! 166: #endif /* !_SYS_MTIO_H_ */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.