1: /*
2: * Copyright (c) 1982, 1986 Regents of the University of California.
3: * All rights reserved. The Berkeley software License Agreement
4: * specifies the terms and conditions for redistribution.
5: *
6: * @(#)mtio.h 7.1.2 (2.11BSD) 1998/3/7
7: */
8:
9: /*
10: * Structures and definitions for mag tape io control commands
11: */
12:
13: /* structure for MTIOCTOP - mag tape op command */
14: struct mtop {
15: short mt_op; /* operations defined below */
16: daddr_t mt_count; /* how many of them */
17: };
18:
19: /* operations */
20: #define MTWEOF 0 /* write an end-of-file record */
21: #define MTFSF 1 /* forward space file */
22: #define MTBSF 2 /* backward space file */
23: #define MTFSR 3 /* forward space record */
24: #define MTBSR 4 /* backward space record */
25: #define MTREW 5 /* rewind */
26: #define MTOFFL 6 /* rewind and put the drive offline */
27: #define MTNOP 7 /* no operation, sets status only */
28: #define MTCACHE 8 /* enable controller cache */
29: #define MTNOCACHE 9 /* disable controller cache */
30: #define MTFLUSH 10 /* flush cache */
31:
32: /* structure for MTIOCGET - mag tape get status command */
33:
34: struct mtget {
35: short mt_type; /* type of magtape device */
36: /* the following two registers are grossly device dependent */
37: short mt_dsreg; /* ``drive status'' register */
38: short mt_erreg; /* ``error'' register */
39: /* end device-dependent registers */
40: short mt_resid; /* residual count */
41: /* the following two are not yet implemented */
42: daddr_t mt_fileno; /* file number of current position */
43: daddr_t mt_blkno; /* block number of current position */
44: /* end not yet implemented */
45: };
46:
47: /*
48: * Constants for mt_type byte. These are the same
49: * for other controllers compatible with the types listed.
50: */
51: #define MT_ISTS 0x01 /* TS-11 */
52: #define MT_ISHT 0x02 /* TM03 Massbus: TE16, TU45, TU77 */
53: #define MT_ISTM 0x03 /* TM11/TE10 Unibus */
54: #define MT_ISMT 0x04 /* TM78/TU78 Massbus */
55: #define MT_ISUT 0x05 /* SI TU-45 emulation on Unibus */
56: #define MT_ISCPC 0x06 /* SUN */
57: #define MT_ISAR 0x07 /* SUN */
58: #define MT_ISTMSCP 0x08 /* DEC TMSCP protocol (TU81, TK50) */
59:
60: /*
61: * At present only the TMSCP driver reports this information in the
62: * high byte of the 'drive status' word. Other drives will (hopefully)
63: * be updated in the future.
64: */
65: #define MTF_BOM 0x01 /* At beginning of media */
66: #define MTF_EOM 0x02 /* At the end of media */
67: #define MTF_OFFLINE 0x04 /* Drive is offline */
68: #define MTF_WRTLCK 0x08 /* Drive is write protected */
69: #define MTF_WRITTEN 0x10 /* Tape has been written */
70:
71: /* mag tape io control commands */
72: #define MTIOCTOP _IOW(m, 1, struct mtop) /* do a mag tape op */
73: #define MTIOCGET _IOR(m, 2, struct mtget) /* get tape status */
74: #define MTIOCIEOT _IO(m, 3) /* ignore EOT error */
75: #define MTIOCEEOT _IO(m, 4) /* enable EOT error */
76:
77: #ifndef KERNEL
78: #define DEFTAPE "/dev/rmt8"
79: #define MT_DEF "/dev/nrmt8"
80: #endif
Defined struct's
mtget
defined in line
34; used 26 times
mtop
defined in line
14; used 36 times
Defined macros
MTBSF
defined in line
22; used 2 times
MTBSR
defined in line
24; used 5 times
MTFSF
defined in line
21; used 3 times
MTFSR
defined in line
23; used 4 times
MTNOP
defined in line
27; used 2 times
MTREW
defined in line
25; used 3 times
Usage of this include