default ncylinders to 1 for disklabel
[unix-history] / usr / src / sys / hp300 / dev / st.c
index cad613c..7ff55ba 100644 (file)
@@ -11,7 +11,7 @@
  *
  * from: Utah $Hdr: st.c 1.11 92/01/21$
  *
  *
  * from: Utah $Hdr: st.c 1.11 92/01/21$
  *
- *      @(#)st.c       7.7 (Berkeley) %G%
+ *      @(#)st.c       7.9 (Berkeley) %G%
  */
 
 /*
  */
 
 /*
 #include "st.h"
 #if NST > 0
 
 #include "st.h"
 #if NST > 0
 
-#include "param.h"
-#include "systm.h"
-#include "buf.h"
-#include "file.h"
-#include "proc.h"
-#include "ioctl.h"
-#include "tty.h"
-#include "mtio.h"
-#include "kernel.h"
-#include "tprintf.h"
-
-#include "hp/dev/device.h"
-#include "scsireg.h"
-#include "stvar.h"
+#include <sys/param.h>
+#include <sys/systm.h>
+#include <sys/buf.h>
+#include <sys/file.h>
+#include <sys/proc.h>
+#include <sys/ioctl.h>
+#include <sys/tty.h>
+#include <sys/mtio.h>
+#include <sys/kernel.h>
+#include <sys/tprintf.h>
+
+#include <hp/dev/device.h>
+#include <hp300/dev/scsireg.h>
+#include <hp300/dev/stvar.h>
 
 extern int scsi_test_unit_rdy();
 extern int scsi_request_sense();
 
 extern int scsi_test_unit_rdy();
 extern int scsi_request_sense();
@@ -198,7 +198,10 @@ stinit(hd)
        register struct hp_device *hd;
 {
        register struct st_softc *sc = &st_softc[hd->hp_unit];
        register struct hp_device *hd;
 {
        register struct st_softc *sc = &st_softc[hd->hp_unit];
+       register struct buf *bp;
 
 
+       for (bp = sttab; bp < &sttab[NST]; bp++)
+               bp->b_actb = &bp->b_actf;
        sc->sc_hd = hd;
        sc->sc_punit = stpunit(hd->hp_flags);
        sc->sc_type = stident(sc, hd);
        sc->sc_hd = hd;
        sc->sc_punit = stpunit(hd->hp_flags);
        sc->sc_type = stident(sc, hd);
@@ -699,13 +702,11 @@ ststrategy(bp)
 
        unit = UNIT(bp->b_dev);
        dp = &sttab[unit];
 
        unit = UNIT(bp->b_dev);
        dp = &sttab[unit];
-       bp->av_forw = NULL;
+       bp->b_actf = NULL;
        s = splbio();
        s = splbio();
-       if (dp->b_actf == NULL)
-               dp->b_actf = bp;
-       else
-               dp->b_actl->av_forw = bp;
-       dp->b_actl = bp;
+       bp->b_actb = dp->b_actb;
+       *dp->b_actb = bp;
+       dp->b_actb = &bp->b_actf;
        if (dp->b_active == 0) {
                dp->b_active = 1;
                stustart(unit);
        if (dp->b_active == 0) {
                dp->b_active = 1;
                stustart(unit);
@@ -815,8 +816,14 @@ stfinish(unit, sc, bp)
        struct st_softc *sc;
        struct buf *bp;
 {
        struct st_softc *sc;
        struct buf *bp;
 {
+       register struct buf *dp;
+
        sttab[unit].b_errcnt = 0;
        sttab[unit].b_errcnt = 0;
-       sttab[unit].b_actf = bp->b_actf;
+       if (dp = bp->b_actf)
+               dp->b_actb = bp->b_actb;
+       else
+               sttab[unit].b_actb = bp->b_actb;
+       *bp->b_actb = dp;
        iodone(bp);
        scsifree(&sc->sc_dq);
        if (sttab[unit].b_actf)
        iodone(bp);
        scsifree(&sc->sc_dq);
        if (sttab[unit].b_actf)