-static long wdxfer[_NWD]; /* count of transfers */
-
-static int wdprobe(struct isa_device *dvp);
-static int wdattach(struct isa_device *dvp);
-static void wdustart(struct disk *du);
-static void wdstart(void);
-static int wdcontrol(struct buf *bp);
-static int wdcommand(struct disk *du, u_int cylinder, u_int head,
- u_int sector, u_int count, u_int command);
-static int wdsetctlr(struct disk *du);
-static int wdwsetctlr(struct disk *du);
-static int wdgetctlr(struct disk *du);
-static void wderror(struct buf *bp, struct disk *du, char *mesg);
-static int wdreset(struct disk *du);
-static void wdsleep(char *wmesg);
-static int wdunwedge(struct disk *du);
-static int wdwait(struct disk *du, u_char bits_wanted);
-
-struct isa_driver wddriver = {
- wdprobe, wdattach, "wd",
+static long wdxfer[NWD]; /* count of transfers */
+
+static int wdprobe(struct isa_device *dvp);
+static int wdattach(struct isa_device *dvp);
+static void wdustart(struct disk *du);
+static void wdstart(int ctrlr);
+static int wdcontrol(struct buf *bp);
+static int wdcommand(struct disk *du, u_int cylinder, u_int head,
+ u_int sector, u_int count, u_int command);
+static int wdsetctlr(struct disk *du);
+static int wdwsetctlr(struct disk *du);
+static int wdgetctlr(struct disk *du);
+static void wderror(struct buf *bp, struct disk *du, char *mesg);
+static void wdflushirq(struct disk *du, int old_ipl);
+static int wdreset(struct disk *du);
+static void wdsleep(int ctrlr, char *wmesg);
+static void wdtimeout(caddr_t cdu, int ticks);
+static int wdunwedge(struct disk *du);
+static int wdwait(struct disk *du, u_char bits_wanted, int timeout);
+
+struct isa_driver wdcdriver = {
+ wdprobe, wdattach, "wdc",