+ case 'i':
+ { struct mtop mtop;
+
+ getstring (op);
+ getstring (count);
+ DEBUG2 ("rmtd: i %s %s\n", op, count);
+ switch (atoi(op)) {
+#ifdef MTCACHE
+ case RMTI_CACHE:
+ mtop.mt_op = MTCACHE;
+ break;
+#endif
+#ifdef MTNOCACHE
+ case RMTI_NOCACHE:
+ mtop.mt_op = MTNOCACHE;
+ break;
+#endif
+#ifdef MTRETEN
+ case RMTI_RETEN:
+ mtop.mt_op = MTRETEN;
+ break;
+#endif
+#ifdef MTERASE
+ case RMTI_ERASE:
+ mtop.mt_op = MTERASE;
+ break;
+#endif
+#ifdef MTEOM
+ case RMTI_EOM:
+ mtop.mt_op = MTEOM;
+ break;
+#endif
+#ifdef MTNBSF
+ case RMTI_NBSF:
+ mtop.mt_op = MTNBSF;
+ break;
+#endif
+ default:
+ errno = EINVAL;
+ goto ioerror;
+ }
+ mtop.mt_count = atoi (count);
+ if (ioctl (tape, MTIOCTOP, (char *) &mtop) < 0)
+ goto ioerror;
+
+ rval = mtop.mt_count;
+
+ goto respond;
+ }
+