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