MTIO(7-SysV) RISC/os Reference Manual MTIO(7-SysV)
NAME
mtio - UNIX tape interface
DESCRIPTION
The files /dev/[r]mt/* refer to the UNIX tape drives, which
may be on the VMEBUS using the SCSI QIC-100 tape interface
qt(7) or the 1/2 inch 9 track tape mt(7).
Many ioctl operations are available on raw magnetic tape.
The following definitions are from <sys/mtio.h>:
/*
* 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 MTBSRn 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 */
#define MTRET 10 /* retention operation */
#define MTRST 11 /* reset operation */
/* 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. These are the same
Printed 1/28/91 Page 1
MTIO(7-SysV) RISC/os Reference Manual MTIO(7-SysV)
* for other 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_ISCPC0x06/* SUN */
#define MT_ISAR 0x07/* SUN */
#define MT_ISTMSCP0x08/* DEC TMSCP protocol (TU81, TK50) */
#define MT_ISQIC0x09/* ISI ts11 qic-2 tape controller */
/* 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
Each read or 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.
FILES
/dev/mt/*
/dev/rmt/*
SEE ALSO
mt(7), qt(7).
cpio(1), tar(1) in the User's Reference Manual.
ERRORS
The status should be returned in a device independent for-
mat.
The special file naming should be redone in a more con-
sistent and understandable manner.
Page 2 Printed 1/28/91