manual page first distributed with 4.2BSD
authorKirk McKusick <mckusick@ucbvax.Berkeley.EDU>
Thu, 16 May 1985 08:45:29 +0000 (00:45 -0800)
committerKirk McKusick <mckusick@ucbvax.Berkeley.EDU>
Thu, 16 May 1985 08:45:29 +0000 (00:45 -0800)
SCCS-vsn: share/man/man4/man4.vax/mtio.4 5.1

usr/src/share/man/man4/man4.vax/mtio.4 [new file with mode: 0644]

diff --git a/usr/src/share/man/man4/man4.vax/mtio.4 b/usr/src/share/man/man4/man4.vax/mtio.4
new file mode 100644 (file)
index 0000000..718c84c
--- /dev/null
@@ -0,0 +1,159 @@
+.\" Copyright (c) 1983 Regents of the University of California.
+.\" All rights reserved.  The Berkeley software License Agreement
+.\" specifies the terms and conditions for redistribution.
+.\"
+.\"    @(#)mtio.4      5.1 (Berkeley) %G%
+.\"
+.TH MTIO 4 "27 July 1983"
+.UC 5
+.SH NAME
+mtio \- UNIX magtape interface
+.SH DESCRIPTION
+The files
+.I "mt0, ..., mt15"
+refer to the UNIX magtape drives,
+which may be on the MASSBUS using the TM03 formatter
+.IR ht (4),
+or TM78 formatter,
+.IR mt (4),
+or on the UNIBUS using either the TM11 or TS11 formatters
+.IR tm (4),
+TU45 compatible formatters,
+.IR ut (4),
+or
+.IR ts (4).
+The following description applies to any of the transport/controller pairs.
+The files
+.I "mt0, ..., mt7"
+are 800bpi, 
+.I "mt8, ..., mt15"
+are 1600bpi, and
+.I "mt16, ..., mt23"
+are 6250bpi.
+(But note that only 1600 bpi is available with the TS11.)
+The files
+.IR "mt0, ..., mt3" ,
+.IR "mt8, ..., mt11" ,
+and
+.I "mt16, ..., mt19"
+are rewound when closed; the others are not.
+When a file open for writing is closed, two end-of-files are written.
+If the tape is not to be rewound
+it is positioned with the head between the two
+tapemarks.
+.PP
+A standard tape consists of a
+series of 1024 byte records terminated by an
+end-of-file.
+To the extent possible, the system makes
+it possible, if inefficient, to treat
+the tape like any other file.
+Seeks have their usual meaning and it is possible
+to read or write a byte at a time.
+Writing in very small units is inadvisable,
+however, because it tends to create monstrous record
+gaps.
+.PP
+The
+.I mt
+files discussed above are useful
+when it is desired to access the tape in a way
+compatible with ordinary files.
+When foreign tapes are to be dealt with, and especially
+when long records are to be read or written, the
+`raw' interface is appropriate.
+The associated files are named
+.I "rmt0, ..., rmt23,"
+but the same minor-device considerations as for the regular files still apply.
+A number of other ioctl operations are available
+on raw magnetic tape.
+The following definitions are from
+.RI < sys/mtio.h >:
+.PP
+.nf
+/*
+ * Structures and definitions for mag tape io control commands
+ */
+
+/* structure for MTIOCTOP - mag tape op command */
+struct mtop    {
+       short   mt_op;          /* operations defined below */
+       daddr_t mt_count;       /* how many of them */
+};
+
+/* operations */
+#define MTWEOF 0       /* write an end-of-file record */
+#define MTFSF  1       /* forward space file */
+#define MTBSF  2       /* backward space file */
+#define MTFSR  3       /* forward space record */
+#define MTBSR  4       /* backward space record */
+#define MTREW  5       /* rewind */
+#define MTOFFL 6       /* rewind and put the drive offline */
+#define MTNOP  7       /* no operation, sets status only */
+
+/* structure for MTIOCGET - mag tape get status command */
+
+struct mtget   {
+       short   mt_type;        /* type of magtape device */
+/* the following two registers are grossly device dependent */
+       short   mt_dsreg;       /* ``drive status'' register */
+       short   mt_erreg;       /* ``error'' register */
+/* end device-dependent registers */
+       short   mt_resid;       /* residual count */
+/* the following two are not yet implemented */
+       daddr_t mt_fileno;      /* file number of current position */
+       daddr_t mt_blkno;       /* block number of current position */
+/* end not yet implemented */
+};
+
+/*
+ * Constants for mt_type byte
+ */
+#define        MT_ISTS         0x01
+#define        MT_ISHT         0x02
+#define        MT_ISTM         0x03
+#define        MT_ISMT         0x04
+#define        MT_ISUT         0x05
+#define        MT_ISCPC        0x06
+#define        MT_ISAR         0x07
+
+/* mag tape io control commands */
+#define        MTIOCTOP        _IOW(m, 1, struct mtop)         /* do a mag tape op */
+#define        MTIOCGET        _IOR(m, 2, struct mtget)        /* get tape status */
+
+#ifndef KERNEL
+#define        DEFTAPE "/dev/rmt12"
+#endif
+.fi
+.ft R
+.PP
+Each
+.I read
+or
+.I write
+call reads or writes the next record on the tape.
+In the write case the record has the same length as the
+buffer given.
+During a read, the record size is passed
+back as the number of bytes read, provided it is no greater
+than the buffer size;
+if the record is long, an error is indicated.
+In raw tape I/O seeks are ignored.
+A zero byte count is returned when a tape mark is read,
+but another read will fetch the first record of the
+new tape file.
+.SH FILES
+/dev/mt?
+.br
+/dev/rmt?
+.SH "SEE ALSO"
+mt(1),
+tar(1),
+tp(1),
+ht(4),
+tm(4),
+ts(4),
+mt(4),
+ut(4)
+.SH BUGS
+The status should be returned in a device independent format.