+#define SREW 4 /* sending a drive rewind */
+
+/* WE CURRENTLY HANDLE REWINDS PRIMITIVELY, BUSYING OUT THE CONTROLLER */
+/* DURING THE REWIND... IF WE EVER GET TWO TRANSPORTS, WE CAN DEBUG MORE */
+/* SOPHISTICATED LOGIC... THIS SIMPLE CODE AT LEAST MAY WORK. */
+
+/*
+ * Determine if there is a controller for
+ * a tm at address reg. Our goal is to make the
+ * device interrupt.
+ */
+tmprobe(reg)
+ caddr_t reg;
+{
+ register int br, cvec;
+
+#ifdef lint
+ br = 0; br = cvec; cvec = br;
+#endif
+ ((struct device *)reg)->tmcs = TM_IE;
+ /*
+ * If this is a tm11, it ought to have interrupted
+ * by now, if it isn't (ie: it is a ts04) then we just
+ * hope that it didn't interrupt, so autoconf will ignore it.
+ * Just in case, we will reference one
+ * of the more distant registers, and hope for a machine
+ * check, or similar disaster if this is a ts.
+ *
+ * Note: on an 11/780, badaddr will just generate
+ * a uba error for a ts; but our caller will notice that
+ * so we won't check for it.
+ */
+ if (badaddr(&((struct device *)reg)->tmrd, 2))
+ return (0);
+ return (1);
+}
+
+/*
+ * Due to a design flaw, we cannot ascertain if the tape
+ * exists or not unless it is on line - ie: unless a tape is
+ * mounted. This is too servere a restriction to bear,
+ * so all units are assumed to exist.
+ */
+/*ARGSUSED*/
+tmslave(ui, reg)
+ struct uba_dinfo *ui;
+ caddr_t reg;
+{