BSD 4_3_Net_2 release
[unix-history] / usr / src / share / man / man4 / man4.tahoe / mtio.4
index d543714..5e5690b 100644 (file)
-.\" Copyright (c) 1986 The Regents of the University of California.
+.\" Copyright (c) 1986, 1991 The Regents of the University of California.
 .\" All rights reserved.
 .\"
 .\" All rights reserved.
 .\"
-.\" %sccs.include.redist.man%
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\"    notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\"    notice, this list of conditions and the following disclaimer in the
+.\"    documentation and/or other materials provided with the distribution.
+.\" 3. All advertising materials mentioning features or use of this software
+.\"    must display the following acknowledgement:
+.\"    This product includes software developed by the University of
+.\"    California, Berkeley and its contributors.
+.\" 4. Neither the name of the University nor the names of its contributors
+.\"    may be used to endorse or promote products derived from this software
+.\"    without specific prior written permission.
 .\"
 .\"
-.\"    @(#)mtio.4      6.4 (Berkeley) %G%
+.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
 .\"
 .\"
-.TH MT 4 ""
-.UC 7
-.SH NAME
-mt \- UNIX magtape interface
-.SH DESCRIPTION
-The files
-.I "cy0s, ..., cy15s"
-refer to the UNIX magtape drives,
-which may be on the VERSABUS using the CIPHER tapemaster formatter
-.IR cy (4),
-The following description applies to any of the transport/controller pairs.
-The files
-.I "cy0s, ..., cy15s"
-are read/written in 25ips, 
-The density (1600 bpi or 3200 bpi) is selected by a switch on the drive.
+.\"     @(#)mtio.4     6.4 (Berkeley) 5/6/91
+.\"
+.Dd May 6, 1991
+.Dt MTIO 4
+.Os
+.Sh NAME
+.Nm mtio
+.Nd
+.Tn UNIX
+magtape interface
+.Sh DESCRIPTION
+The special files named
+.Pa /dev/cy0s ,
+...,
+.Pa /dev/cy15s
+are interfaces to the
+.Tn UNIX
+magtape drivers.
+For the
+Tahoe, these interfaces
+may be on the
+.Tn VERSABUS
+via a
+.Tn CIPHER
+tapemaster formatter
+.Xr cy 4 .
 The files
 The files
-.I "cy0s, ..., cy7s"
-are rewound when closed.
-The non-rewinding files are named
-.I ncy[0-7]
-respectively.
-.PP
-For compatibility, the
-.I [n]cy*s
+.Pa cy0s ,
+...,
+.Pa cy15s
+are read/written in 25
+.Tn IPS , 
+The density (1600
+.Tn BPI
+or 3200
+.Tn BPI )
+is selected by a switch on the drive.
+The following table of device names
+applies to any of the transport/controller pairs.
+.Bl -column "rewindxxx" "No-rewindxxx" "rewindxxxx" "No-rewindxxxx" -offset indent
+.Em Rewind     No-rewind       Rewind  No-rewind
+cy0s/rcy0s     ncy0s/nrcy0s    cy8s/rcy8s      ncy8s/nrcy8s
+cy1s/rcy1s     ncy1s/nrcy1s    cy9s/rcy9s      ncy9s/nrcy9s
+cy2s/rcy2s     ncy2s/nrcy2s    cy10s/rcy10s    ncy10s/nrcy10s
+cy3s/rcy3s     ncy3s/nrcy3s    cy11s/rcy11s    ncy11s/nrcy11s
+cy4s/rcy4s     ncy4s/nrcy4s    cy12s/rcy12s    ncy12s/nrcy12s
+cy5s/rcy5s     ncy5s/nrcy5s    cy13s/rcy13s    ncy13s/nrcy13s
+cy6s/rcy6s     ncy6s/nrcy6s    cy14s/rcy14s    ncy14s/nrcy14s
+cy7s/rcy7s     ncy7s/nrcy7s    cy15s/rcy15s    ncy15s/nrcy15s
+.El
+.Pp
+The rewind devices automatically rewind
+when the last requested read, write or seek has finished, or the end of the tape
+has been reached. The letter
+.Ql n
+is usually prepended to
+the name of the no-rewind devices.
+.Pp
+For compatibility with customary
+.Tn UNIX
+tape device
+names
+.Dq Em mt* ,
+the
+.Bo Pa n Bc Pa cy*s
 files are linked to appropriate
 files are linked to appropriate
-.I [n]mt*
+.Bo Pa n Bc Em mt*
 files.
 files.
-.PP
-When a file open for writing is closed, two file-marks are written.
-If the tape is not to be rewound
-it is positioned with the head between the two
-file-marks.
-.PP
-A standard tape consists of a
-series of 1024 byte records terminated by two
-file-marks.
-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.
-.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.
-Writing in very small units is inadvisable,
-however, because it tends to create monstrous record
-gaps.  The associated files are named
-.I "rcy0s, ..., rcy15s,"
-but the same minor-device considerations as for the regular files still apply,
-as well as the appropriate
-.I r[n]mt*
-links.
-.PP
-A number of other ioctl operations are available
+.Pp
+Unix tapes are written in multiples of 1024 byte block
+records. Two end-of-file markers mark the end of a tape, and
+one end-of-file marker marks the end of a tape file.
+If the tape is not to be rewound it is positioned with the
+head in between the two tape marks, where the next write
+will over write the second end-of-file marker.
+.Pp
+All of the magtape devices may be manipulated with the
+.Xr mt 1
+command.
+.Pp
+A number of other
+.Xr ioctl 2
+operations are available
 on raw magnetic tape.
 on raw magnetic tape.
-The following definitions are from <sys/mtio.h>:
-.PP
-.nf
+The following definitions are from
+.Aq Pa sys/mtio.h :
+.Bd  -literal
 /*
  * Structures and definitions for mag tape io control commands
  */
 
 /*
  * Structures and definitions for mag tape io control commands
  */
 
-/* mag tape io control commands */
-#define MTIOCTOP       (('m'<<8)|1)    /* do a mag tape op */
-#define MTIOCGET       (('m'<<8)|2)    /* get mag tape status */
-
 /* structure for MTIOCTOP - mag tape op command */
 /* structure for MTIOCTOP - mag tape op command */
-struct mtop    {
+struct mtop {
        short   mt_op;          /* operations defined below */
        daddr_t mt_count;       /* how many of them */
 };
 
 /* operations */
        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 */
+#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 */
+#define MTCACHE        8       /* enable controller cache */
+#define MTNOCACHE      9       /* disable controller cache */
 
 /* structure for MTIOCGET - mag tape get status command */
 
 
 /* structure for MTIOCGET - mag tape get status command */
 
-struct mtget   {
-       short   mt_type;                /* type of magtape device */
+struct mtget {
+       short   mt_type;        /* type of magtape device */
 /* the following two registers are grossly device dependent */
 /* the following two registers are grossly device dependent */
-       short   mt_dsreg;               /* ``drive status'' register */
-       short   mt_erreg;               /* ``error'' register */
+       short   mt_dsreg;       /* ``drive status'' register */
+       short   mt_erreg;       /* ``error'' register */
 /* end device-dependent registers */
 /* end device-dependent registers */
-       short   mt_resid;               /* residual count */
+       short   mt_resid;       /* residual count */
 /* the following two are not yet implemented */
 /* 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 */
+       daddr_t mt_fileno;      /* file number of current position */
+       daddr_t mt_blkno;       /* block number of current position */
 /* end not yet implemented */
 };
 
 /*
 /* end not yet implemented */
 };
 
 /*
- * Constants for mt_type byte
+ * Constants for mt_type byte.  These are the same
+ * for controllers compatible with the types listed.
+ */
+#define        MT_ISTS         0x01            /* TS-11 */
+#define        MT_ISHT         0x02            /* TM03 Massbus: TE16, TU45, TU77 */
+#define        MT_ISTM         0x03            /* TM11/TE10 Unibus */
+#define        MT_ISMT         0x04            /* TM78/TU78 Massbus */
+#define        MT_ISUT         0x05            /* SI TU-45 emulation on Unibus */
+#define        MT_ISCPC        0x06            /* SUN */
+#define        MT_ISAR         0x07            /* SUN */
+#define        MT_ISTMSCP      0x08            /* DEC TMSCP protocol (TU81, TK50) */
+#define MT_ISCY        0x09            /* CCI Cipher */
+#define MT_ISCT        0x0a            /* HP 1/4 tape */
+#define MT_ISFHP       0x0b            /* HP 7980 1/2 tape */
+#define MT_ISEXABYTE   0x0c            /* Exabyte */
+#define MT_ISEXA8200   0x0c            /* Exabyte EXB-8200 */
+#define MT_ISEXA8500   0x0d            /* Exabyte EXB-8500 */
+#define MT_ISVIPER1    0x0e            /* Archive Viper-150 */
+#define MT_ISPYTHON    0x0f            /* Archive Python (DAT) */
+#define MT_ISHPDAT     0x10            /* HP 35450A DAT drive */
+
+/* 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 */
+#define MTIOCIEOT      _IO('m', 3)                     /* ignore EOT error */
+#define MTIOCEEOT      _IO('m', 4)                     /* enable EOT error */
+
+#ifndef KERNEL
+#define        DEFTAPE "/dev/rmt12"
+#endif
+
+#ifdef KERNEL
+/*
+ * minor device number
  */
  */
-#define MT_ISTS                01
-#define MT_ISHT                02
-#define MT_ISTM                03
-.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?,
-/dev/rmt?
-.SH "SEE ALSO"
-mt(1), tar(1), cy(4)
-.SH BUGS
+
+#define        T_UNIT          003             /* unit selection */
+#define        T_NOREWIND      004             /* no rewind on close */
+#define        T_DENSEL        030             /* density select */
+#define        T_800BPI        000             /* select  800 bpi */
+#define        T_1600BPI       010             /* select 1600 bpi */
+#define        T_6250BPI       020             /* select 6250 bpi */
+#define        T_BADBPI        030             /* undefined selection */
+#endif
+.Ed
+.Sh FILES
+.Bl -tag -width /dev/nrcy? -compact
+.It Pa /dev/cy? ,
+.It Pa /dev/rcy?
+Rewind devices.
+.It Pa /dev/ncy? ,
+.It Pa /dev/nrcy?
+No-rewind devices.
+.It Pa /dev/[n]mt? ,
+.It Pa /dev/[n]rmt?
+Linked device names.
+.El
+.Sh SEE ALSO
+.Xr mt 1 ,
+.Xr tar 1 ,
+.Xr cy 4