11 #define write faketape_write
12 #define open faketape_open
13 #define read faketape_read
14 #define close faketape_close
15 #define ioctl faketape_ioctl
16 #define debug(x) faketape_debug(x)
25 ioctl(fd, MTIOCGET, &mt_get);
26 printf("*** file:block %i:%i BOT=%u EOD=%u EOF=%u\n",
27 mt_get.mt_fileno, mt_get.mt_blkno,
28 GMT_BOT(mt_get.mt_gstat) != 0,
29 GMT_EOD(mt_get.mt_gstat) != 0,
30 GMT_EOF(mt_get.mt_gstat) != 0
34 int main(int argc, char **argv)
44 fd = open("/dev/lto2", O_CREAT | O_RDWR);
46 perror("Can't open fd");
53 printf("\n*** rewind\n");
56 r1 = ioctl(fd, MTIOCTOP, &mt_com);
60 printf("\n*** write something (3 writes)\n");
61 write(fd, "abcdefghijklmnopqrstuvwyz", strlen("abcdefghijklmnopqrstuvwyz")+1);
62 write(fd, "abcdefghijklmnopqrstuvwyz", strlen("abcdefghijklmnopqrstuvwyz")+1);
63 write(fd, "abcdefghijklmnopqrstuvwyz", strlen("abcdefghijklmnopqrstuvwyz")+1);
67 printf("\n*** WEOF\n");
68 mt_com.mt_op = MTWEOF;
70 r1 = ioctl(fd, MTIOCTOP, &mt_com);
73 write(fd, "abcdefghijklmnopqrstuvwyz", strlen("abcdefghijklmnopqrstuvwyz")+1);
75 printf("\n*** WEOF\n");
76 mt_com.mt_op = MTWEOF;
78 r1 = ioctl(fd, MTIOCTOP, &mt_com);
82 printf("\n*** rewind\n");
85 r1 = ioctl(fd, MTIOCTOP, &mt_com);
92 r1 = ioctl(fd, MTIOCTOP, &mt_com);
93 printf(" r=%i\n", r1);
99 r1 = ioctl(fd, MTIOCTOP, &mt_com);
100 printf(" r=%i\n", r1);
104 mt_com.mt_op = MTFSR;
106 r1 = ioctl(fd, MTIOCTOP, &mt_com);
107 printf(" r=%i\n", r1);
111 mt_com.mt_op = MTFSR;
113 r1 = ioctl(fd, MTIOCTOP, &mt_com);
114 printf(" r=%i\n", r1);
118 mt_com.mt_op = MTFSR;
120 r1 = ioctl(fd, MTIOCTOP, &mt_com);
121 printf(" r=%i\n", r1);
126 /* write a second file */
127 printf("\n*** write something\n");
128 write(fd, "abcdefghijklmnopqrstuvwyz", strlen("abcdefghijklmnopqrstuvwyz")+1);
132 printf("\n*** bsf\n");
133 mt_com.mt_op = MTBSF;
135 r1 = ioctl(fd, MTIOCTOP, &mt_com);
139 printf("\n*** rewind\n");
141 mt_com.mt_op = MTREW;
142 r1 = ioctl(fd, MTIOCTOP, &mt_com);
144 /* read something with error */
145 printf("\n*** read c=%s len=%i\n", c, r1);
153 printf("\n*** read c=%s len=%i\n", c, r1);
155 r1 = read(fd, c, 200);
159 /* write something */
160 printf("\n*** write something\n");
161 write(fd, "abcdefghijklmnopqrstuvwyz", strlen("abcdefghijklmnopqrstuvwyz")+1);
165 printf("\n*** rewind\n");
167 mt_com.mt_op = MTREW;
168 r1 = ioctl(fd, MTIOCTOP, &mt_com);
169 r1 = read(fd, c, 200);
171 printf("\n*** read c=%s len=%i\n", c, r1);
172 r1 = read(fd, c, 200);
174 printf("\n*** read c=%s len=%i\n", c, r1);
177 printf("\n*** WEOF");
178 mt_com.mt_op = MTWEOF;
180 r1 = ioctl(fd, MTIOCTOP, &mt_com);
181 printf(" r=%i\n", r1);
185 printf("\n*** fsf x1");
186 mt_com.mt_op = MTFSF;
188 r1 = ioctl(fd, MTIOCTOP, &mt_com);
189 printf(" r=%i\n", r1);
192 /* write something */
193 printf("\n*** write something\n");
194 write(fd, "abcdefghijklmnopqrstuvwyz", strlen("abcdefghijklmnopqrstuvwyz")+1);
199 mt_com.mt_op = MTFSF;
201 r1 = ioctl(fd, MTIOCTOP, &mt_com);
202 printf(" r=%i\n", r1);
206 printf("\n*** weof 3");
207 mt_com.mt_op = MTWEOF;
209 r1 = ioctl(fd, MTIOCTOP, &mt_com);
210 printf(" r=%i\n", r1);
214 printf("\n*** rewind\n");
216 mt_com.mt_op = MTREW;
217 r1 = ioctl(fd, MTIOCTOP, &mt_com);
221 printf("\n*** fsr x10");
222 mt_com.mt_op = MTFSR;
223 mt_com.mt_count = 10;
224 r1 = ioctl(fd, MTIOCTOP, &mt_com);
225 printf(" r=%i\n", r1);
229 printf("\n*** goto eom");
231 mt_com.mt_op = MTEOM;
232 r1 = ioctl(fd, MTIOCTOP, &mt_com);
233 printf(" r=%i\n", r1);
239 mt_com.mt_op = MTFSR;
240 r1 = ioctl(fd, MTIOCTOP, &mt_com);
241 printf(" r=%i\n", r1);
244 /* write something */
245 printf("\n*** write something\n");
246 write(fd, "abcdefghijklmnopqrstuvwyz", strlen("abcdefghijklmnopqrstuvwyz")+1);
250 printf("\n*** rewind");
252 mt_com.mt_op = MTREW;
253 r1 = ioctl(fd, MTIOCTOP, &mt_com);
254 printf(" r=%i\n", r1);
257 printf("\n*** fsf x2");
258 mt_com.mt_op = MTFSF;
260 r1 = ioctl(fd, MTIOCTOP, &mt_com);
261 printf(" r=%i\n", r1);
265 mt_com.mt_op = MTFSR;
267 r1 = ioctl(fd, MTIOCTOP, &mt_com);
268 printf(" r=%i\n", r1);
271 /* write something */
272 printf("\n*** write something\n");
273 write(fd, "abcdefghijklmnopqrstuvwyz", strlen("abcdefghijklmnopqrstuvwyz")+1);
276 printf("\n*** bsf x2");
277 mt_com.mt_op = MTBSF;
279 r1 = ioctl(fd, MTIOCTOP, &mt_com);
280 printf(" r=%i\n", r1);
283 printf("\n*** bsf x10");
284 mt_com.mt_op = MTBSF;
285 mt_com.mt_count = 10;
286 r1 = ioctl(fd, MTIOCTOP, &mt_com);
287 printf(" r=%i\n", r1);
291 mt_com.mt_op = MTEOM;
293 r1 = ioctl(fd, MTIOCTOP, &mt_com);
294 printf(" r=%i\n", r1);
297 printf("\n*** bsr x10");
298 mt_com.mt_op = MTBSR;
299 mt_com.mt_count = 10;
300 r1 = ioctl(fd, MTIOCTOP, &mt_com);
301 printf(" r=%i\n", r1);
305 mt_com.mt_op = MTEOM;
307 r1 = ioctl(fd, MTIOCTOP, &mt_com);
308 printf(" r=%i\n", r1);
312 mt_com.mt_op = MTFSR;
314 r1 = ioctl(fd, MTIOCTOP, &mt_com);
315 printf(" r=%i\n", r1);