|
|
1.1 ! root 1: .\" Copyright (c) 1986 The Regents of the University of California. ! 2: .\" All rights reserved. ! 3: .\" ! 4: .\" Redistribution and use in source and binary forms are permitted provided ! 5: .\" that: (1) source distributions retain this entire copyright notice and ! 6: .\" comment, and (2) distributions including binaries display the following ! 7: .\" acknowledgement: ``This product includes software developed by the ! 8: .\" University of California, Berkeley and its contributors'' in the ! 9: .\" documentation or other materials provided with the distribution and in ! 10: .\" all advertising materials mentioning features or use of this software. ! 11: .\" Neither the name of the University nor the names of its contributors may ! 12: .\" be used to endorse or promote products derived from this software without ! 13: .\" specific prior written permission. ! 14: .\" THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED ! 15: .\" WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF ! 16: .\" MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ! 17: .\" ! 18: .\" @(#)mtio.4 6.3 (Berkeley) 6/23/90 ! 19: .\" ! 20: .TH MT 4 "June 23, 1990" ! 21: .UC 7 ! 22: .SH NAME ! 23: mt \- UNIX magtape interface ! 24: .SH DESCRIPTION ! 25: The files ! 26: .I "cy0s, ..., cy15s" ! 27: refer to the UNIX magtape drives, ! 28: which may be on the VERSABUS using the CIPHER tapemaster formatter ! 29: .IR cy (4), ! 30: The following description applies to any of the transport/controller pairs. ! 31: The files ! 32: .I "cy0s, ..., cy15s" ! 33: are read/written in 25ips, ! 34: The density (1600 bpi or 3200 bpi) is selected by a switch on the drive. ! 35: The files ! 36: .I "cy0s, ..., cy7s" ! 37: are rewound when closed. ! 38: The non-rewinding files are named ! 39: .I ncy[0-7] ! 40: respectively. ! 41: .PP ! 42: For compatibility, the ! 43: .I [n]cy*s ! 44: files are linked to appropriate ! 45: .I [n]mt* ! 46: files. ! 47: .PP ! 48: When a file open for writing is closed, two file-marks are written. ! 49: If the tape is not to be rewound ! 50: it is positioned with the head between the two ! 51: file-marks. ! 52: .PP ! 53: A standard tape consists of a ! 54: series of 1024 byte records terminated by two ! 55: file-marks. ! 56: To the extent possible, the system makes ! 57: it possible, if inefficient, to treat ! 58: the tape like any other file. ! 59: Seeks have their usual meaning and it is possible ! 60: to read or write a byte at a time. ! 61: .PP ! 62: The ! 63: .I mt ! 64: files discussed above are useful ! 65: when it is desired to access the tape in a way ! 66: compatible with ordinary files. ! 67: When foreign tapes are to be dealt with, and especially ! 68: when long records are to be read or written, the ! 69: `raw' interface is appropriate. ! 70: Writing in very small units is inadvisable, ! 71: however, because it tends to create monstrous record ! 72: gaps. The associated files are named ! 73: .I "rcy0s, ..., rcy15s," ! 74: but the same minor-device considerations as for the regular files still apply, ! 75: as well as the appropriate ! 76: .I r[n]mt* ! 77: links. ! 78: .PP ! 79: A number of other ioctl operations are available ! 80: on raw magnetic tape. ! 81: The following definitions are from <sys/mtio.h>: ! 82: .PP ! 83: .nf ! 84: /* ! 85: * Structures and definitions for mag tape io control commands ! 86: */ ! 87: ! 88: /* mag tape io control commands */ ! 89: #define MTIOCTOP (('m'<<8)|1) /* do a mag tape op */ ! 90: #define MTIOCGET (('m'<<8)|2) /* get mag tape status */ ! 91: ! 92: /* structure for MTIOCTOP - mag tape op command */ ! 93: struct mtop { ! 94: short mt_op; /* operations defined below */ ! 95: daddr_t mt_count; /* how many of them */ ! 96: }; ! 97: ! 98: /* operations */ ! 99: #define MTWEOF 0 /* write an end-of-file record */ ! 100: #define MTFSF 1 /* forward space file */ ! 101: #define MTBSF 2 /* backward space file */ ! 102: #define MTFSR 3 /* forward space record */ ! 103: #define MTBSR 4 /* backward space record */ ! 104: #define MTREW 5 /* rewind */ ! 105: #define MTOFFL 6 /* rewind and put the drive offline */ ! 106: #define MTNOP 7 /* no operation, sets status only */ ! 107: ! 108: /* structure for MTIOCGET - mag tape get status command */ ! 109: ! 110: struct mtget { ! 111: short mt_type; /* type of magtape device */ ! 112: /* the following two registers are grossly device dependent */ ! 113: short mt_dsreg; /* ``drive status'' register */ ! 114: short mt_erreg; /* ``error'' register */ ! 115: /* end device-dependent registers */ ! 116: short mt_resid; /* residual count */ ! 117: /* the following two are not yet implemented */ ! 118: daddr_t mt_fileno; /* file number of current position */ ! 119: daddr_t mt_blkno; /* block number of current position */ ! 120: /* end not yet implemented */ ! 121: }; ! 122: ! 123: /* ! 124: * Constants for mt_type byte ! 125: */ ! 126: #define MT_ISTS 01 ! 127: #define MT_ISHT 02 ! 128: #define MT_ISTM 03 ! 129: .fi ! 130: .ft R ! 131: .PP ! 132: Each ! 133: .I read ! 134: or ! 135: .I write ! 136: call reads or writes the next record on the tape. ! 137: In the write case the record has the same length as the ! 138: buffer given. ! 139: During a read, the record size is passed ! 140: back as the number of bytes read, provided it is no greater ! 141: than the buffer size; ! 142: if the record is long, an error is indicated. ! 143: In raw tape I/O seeks are ignored. ! 144: A zero byte count is returned when a tape mark is read, ! 145: but another read will fetch the first record of the ! 146: new tape file. ! 147: .SH FILES ! 148: /dev/mt?, ! 149: /dev/rmt? ! 150: .SH "SEE ALSO" ! 151: mt(1), tar(1), cy(4) ! 152: .SH BUGS
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.