|
|
1.1 root 1: .\" Copyright (c) 1980 Regents of the University of California.
2: .\" All rights reserved. The Berkeley software License Agreement
3: .\" specifies the terms and conditions for redistribution.
4: .\"
5: .\" @(#)mtop.4 4.1 (Berkeley) 5/15/85
6: .\"
7: .TH MTOP 4 10/8/81
8: .UC 4
9: .SH NAME
10: mt \- UNIX magtape interface
11: .SH DESCRIPTION
12: The files
13: .I "mt0, ..., mt15"
14: refer to the UNIX magtape drives,
15: which may be on the MASSBUS using the TM03 or TM78 formatters
16: .IR ht (4)
17: or
18: .IR mt (4),
19: or on the UNIBUS using either the TM11, TS11, or TU45 formatters
20: .IR tm (4),
21: .IR ts (4)
22: or
23: .IR ut (4).
24: The following description applies to any of the transport/controller pairs.
25: The files
26: .I "mt0, ..., mt7"
27: are low density, and
28: .I "mt8, ..., mt15"
29: are high density.
30: On the TM03 and TM11 low density is 800bpi and high density is 1600bpi.
31: On the TM78 low density is 1600bpi and high density is 6250bpi.
32: On the TS11 both low and high density are 1600bpi.
33: The files
34: .I "mt0, ..., mt3"
35: and
36: .I "mt8, ..., mt11"
37: are rewound when closed; the others are not.
38: When a file open for writing is closed, two end-of-files are written.
39: If the tape is not to be rewound
40: it is positioned with the head between the two
41: tapemarks.
42: .PP
43: A standard tape consists of a
44: series of 1024 byte records terminated by an
45: end-of-file.
46: To the extent possible, the system makes
47: it possible, if inefficient, to treat
48: the tape like any other file.
49: Seeks have their usual meaning and it is possible
50: to read or write a byte at a time.
51: Writing in very small units is inadvisable,
52: however, because it tends to create monstrous record
53: gaps.
54: .PP
55: The
56: .I mt
57: files discussed above are useful
58: when it is desired to access the tape in a way
59: compatible with ordinary files.
60: When foreign tapes are to be dealt with, and especially
61: when long records are to be read or written, the
62: `raw' interface is appropriate.
63: The associated files are named
64: .I "rmt0, ..., rmt15,"
65: but the same minor-device considerations as for the regular files still apply.
66: A number of other ioctl operations are available
67: on raw magnetic tape.
68: The following definitions are from <sys/mtio.h>:
69: .PP
70: .nf
71: /*
72: * Structures and definitions for mag tape io control commands
73: */
74:
75: /* mag tape io control commands */
76: #define MTIOCTOP (('m'<<8)|1) /* do a mag tape op */
77: #define MTIOCGET (('m'<<8)|2) /* get mag tape status */
78:
79: /* structure for MTIOCTOP - mag tape op command */
80: struct mtop {
81: short mt_op; /* operations defined below */
82: daddr_t mt_count; /* how many of them */
83: };
84:
85: /* operations */
86: #define MTWEOF 0 /* write an end-of-file record */
87: #define MTFSF 1 /* forward space file */
88: #define MTBSF 2 /* backward space file */
89: #define MTFSR 3 /* forward space record */
90: #define MTBSR 4 /* backward space record */
91: #define MTREW 5 /* rewind */
92: #define MTOFFL 6 /* rewind and put the drive offline */
93: #define MTNOP 7 /* no operation, sets status only */
94:
95: /* structure for MTIOCGET - mag tape get status command */
96:
97: struct mtget {
98: short mt_type; /* type of magtape device */
99: /* the following two registers are grossly device dependent */
100: short mt_dsreg; /* ``drive status'' register */
101: short mt_erreg; /* ``error'' register */
102: /* end device-dependent registers */
103: short mt_resid; /* residual count */
104: /* the following two are not yet implemented */
105: daddr_t mt_fileno; /* file number of current position */
106: daddr_t mt_blkno; /* block number of current position */
107: /* end not yet implemented */
108: };
109:
110: /*
111: * Constants for mt_type byte
112: */
113: #define MT_ISTS 01
114: #define MT_ISHT 02
115: #define MT_ISTM 03
116: #define MT_ISMT 04
117: #define MT_ISUT 05
118: .fi
119: .ft R
120: .PP
121: Each
122: .I read
123: or
124: .I write
125: call reads or writes the next record on the tape.
126: In the write case the record has the same length as the
127: buffer given.
128: During a read, the record size is passed
129: back as the number of bytes read, provided it is no greater
130: than the buffer size;
131: if the record is long, an error is indicated.
132: In raw tape I/O seeks are ignored.
133: A zero byte count is returned when a tape mark is read,
134: but another read will fetch the first record of the
135: new tape file.
136: .SH FILES
137: /dev/mt?,
138: /dev/rmt?
139: .SH "SEE ALSO"
140: mt(1), tar(1), tp(1), ht(4), mt(4), tm(4), ts(4)
141: .SH BUGS
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.