1
2
3
4
5
6 #ifndef _LINUX_MTIO_H
7 #define _LINUX_MTIO_H
8
9 #include <linux/ioctl.h>
10
11
12
13
14
15
16 struct mtop {
17 short mt_op;
18 int mt_count;
19 };
20
21
22 #define MTRESET 0
23 #define MTFSF 1
24
25
26 #define MTBSF 2
27 #define MTFSR 3
28 #define MTBSR 4
29 #define MTWEOF 5
30 #define MTREW 6
31 #define MTOFFL 7
32 #define MTNOP 8
33 #define MTRETEN 9
34 #define MTBSFM 10
35 #define MTFSFM 11
36 #define MTEOM 12
37
38
39
40 #define MTERASE 13
41
42 #define MTRAS1 14
43 #define MTRAS2 15
44 #define MTRAS3 16
45
46
47 #define MTSETBLK 20
48 #define MTSETDENSITY 21
49 #define MTSEEK 22
50 #define MTTELL 23
51 #define MTSETDRVBUFFER 24
52
53
54
55
56
57 struct mtget {
58 long mt_type;
59 long mt_resid;
60
61
62
63
64
65 long mt_dsreg;
66 long mt_gstat;
67 long mt_erreg;
68
69 daddr_t mt_fileno;
70 daddr_t mt_blkno;
71 };
72
73
74
75
76 #define MT_ISUNKNOWN 0x01
77 #define MT_ISQIC02 0x02
78 #define MT_ISWT5150 0x03
79 #define MT_ISARCHIVE_5945L2 0x04
80 #define MT_ISCMSJ500 0x05
81 #define MT_ISTDC3610 0x06
82 #define MT_ISARCHIVE_VP60I 0x07
83 #define MT_ISARCHIVE_2150L 0x08
84 #define MT_ISARCHIVE_2060L 0x09
85 #define MT_ISQIC02_ALL_FEATURES 0x0F
86 #define MT_ISWT5099EEN24 0x11
87 #define MT_ISEVEREX_FT40A 0x32
88 #define MT_ISDDS1 0x51
89 #define MT_ISDDS2 0x52
90 #define MT_ISSCSI1 0x71
91 #define MT_ISSCSI2 0x72
92
93 struct mt_tape_info {
94 long t_type;
95 char *t_name;
96 };
97 #define MT_TAPE_INFO { \
98 {MT_ISUNKNOWN, "Unknown type of tape device"}, \
99 {MT_ISQIC02, "Generic QIC-02 tape streamer"}, \
100 {MT_ISWT5150, "Wangtek 5150, QIC-150"}, \
101 {MT_ISARCHIVE_5945L2, "Archive 5945L-2"}, \
102 {MT_ISCMSJ500, "CMS Jumbo 500"}, \
103 {MT_ISTDC3610, "Tandberg TDC 3610, QIC-24"}, \
104 {MT_ISARCHIVE_VP60I, "Archive VP60i, QIC-02"}, \
105 {MT_ISARCHIVE_2150L, "Archive Viper 2150L"}, \
106 {MT_ISARCHIVE_2060L, "Archive Viper 2060L"}, \
107 {MT_ISWT5099EEN24, "Wangtek 5099-een24, 60MB"}, \
108 {MT_ISEVEREX_FT40A, "Everex FT40A, QIC-40"}, \
109 {MT_ISSCSI1, "Generic SCSI-1 tape"}, \
110 {MT_ISSCSI2, "Generic SCSI-2 tape"}, \
111 {0, NULL} \
112 }
113
114
115
116
117 struct mtpos {
118 long mt_blkno;
119 };
120
121
122
123 #define MTIOCTOP _IOW('m', 1, struct mtop)
124 #define MTIOCGET _IOR('m', 2, struct mtget)
125 #define MTIOCPOS _IOR('m', 3, struct mtpos)
126
127
128
129
130
131
132
133
134 #define GMT_EOF(x) ((x) & 0x80000000)
135 #define GMT_BOT(x) ((x) & 0x40000000)
136 #define GMT_EOT(x) ((x) & 0x20000000)
137 #define GMT_SM(x) ((x) & 0x10000000)
138 #define GMT_EOD(x) ((x) & 0x08000000)
139 #define GMT_WR_PROT(x) ((x) & 0x04000000)
140
141 #define GMT_ONLINE(x) ((x) & 0x01000000)
142 #define GMT_D_6250(x) ((x) & 0x00800000)
143 #define GMT_D_1600(x) ((x) & 0x00400000)
144 #define GMT_D_800(x) ((x) & 0x00200000)
145
146
147 #define GMT_DR_OPEN(x) ((x) & 0x00040000)
148
149 #define GMT_IM_REP_EN(x) ((x) & 0x00010000)
150
151
152
153
154
155
156
157
158 #define MT_ST_BLKSIZE_SHIFT 0
159 #define MT_ST_BLKSIZE_MASK 0xffffff
160 #define MT_ST_DENSITY_SHIFT 24
161 #define MT_ST_DENSITY_MASK 0xff000000
162
163 #define MT_ST_SOFTERR_SHIFT 0
164 #define MT_ST_SOFTERR_MASK 0xffff
165
166 #define MT_ST_OPTIONS 0xf0000000
167 #define MT_ST_BOOLEANS 0x10000000
168 #define MT_ST_WRITE_THRESHOLD 0x20000000
169 #define MT_ST_BUFFER_WRITES 0x1
170 #define MT_ST_ASYNC_WRITES 0x2
171 #define MT_ST_READ_AHEAD 0x4
172 #define MT_ST_DEBUGGING 0x8
173
174 #endif
175