diff --git a/sys/dev/fdc/fdc.c b/sys/dev/fdc/fdc.c index 10e38f9d7db..587973372d7 100644 --- a/sys/dev/fdc/fdc.c +++ b/sys/dev/fdc/fdc.c @@ -43,7 +43,7 @@ * SUCH DAMAGE. * * from: @(#)fd.c 7.4 (Berkeley) 5/25/91 - * $Id: fd.c,v 1.86 1996/04/07 17:32:12 bde Exp $ + * $Id: fd.c,v 1.87 1996/04/08 19:40:56 smpatel Exp $ * */ @@ -581,6 +581,7 @@ fdattach(struct isa_device *dev) fdc->state = DEVIDLE; /* reset controller, turn motor off, clear fdout mirror reg */ outb(fdc->baseport + FDOUT, ((fdc->fdout = 0))); + TAILQ_INIT(&fdc->head); /* check for each floppy drive */ for (fdup = isa_biotab_fdc; fdup->id_driver != 0; fdup++) { @@ -1126,7 +1127,6 @@ fdclose(dev_t dev, int flags, int mode, struct proc *p) void fdstrategy(struct buf *bp) { - register struct buf *dp; long nblocks, blknum; int s; fdcu_t fdcu; @@ -1187,9 +1187,8 @@ fdstrategy(struct buf *bp) } bp->b_cylin = blknum / (fd->ft->sectrac * fd->ft->heads); bp->b_pblkno = bp->b_blkno; - dp = &(fdc->head); s = splbio(); - disksort(dp, bp); + tqdisksort(&fdc->head, bp); untimeout(fd_turnoff, (caddr_t)fdu); /* a good idea */ fdstart(fdcu); splx(s); @@ -1227,11 +1226,10 @@ fd_timeout(void *arg1) fdcu_t fdcu = (fdcu_t)arg1; fdu_t fdu = fdc_data[fdcu].fdu; int baseport = fdc_data[fdcu].baseport; - struct buf *dp, *bp; + struct buf *bp; int s; - dp = &fdc_data[fdcu].head; - bp = dp->b_actf; + bp = TAILQ_FIRST(&fdc_data[fdcu].head); /* * Due to IBM's brain-dead design, the FDC has a faked ready @@ -1314,14 +1312,12 @@ fdstate(fdcu_t fdcu, fdc_p fdc) unsigned long blknum; fdu_t fdu = fdc->fdu; fd_p fd; - register struct buf *dp, *bp; + register struct buf *bp; struct fd_formb *finfo = NULL; size_t fdblk; - dp = &(fdc->head); - bp = dp->b_actf; - if(!bp) - { + bp = TAILQ_EMPTY(&fdc->head); + if(!bp) { /***********************************************\ * nothing left for this controller to do * * Force into the IDLE state, * @@ -1619,7 +1615,7 @@ fdstate(fdcu_t fdcu, fdc_p fdc) /* ALL DONE */ fd->skip = 0; bp->b_resid = 0; - dp->b_actf = bp->b_actf; + TAILQ_REMOVE(&fdc->head, bp, b_act); biodone(bp); fdc->fd = (fd_p) 0; fdc->fdu = -1; @@ -1727,10 +1723,9 @@ retrier(fdcu) fdcu_t fdcu; { fdc_p fdc = fdc_data + fdcu; - register struct buf *dp, *bp; + register struct buf *bp; - dp = &(fdc->head); - bp = dp->b_actf; + bp = TAILQ_FIRST(&fdc->head); if(fd_data[FDUNIT(minor(bp->b_dev))].options & FDOPT_NORETRY) goto fail; @@ -1774,7 +1769,7 @@ retrier(fdcu) bp->b_flags |= B_ERROR; bp->b_error = EIO; bp->b_resid = bp->b_bcount - fdc->fd->skip; - dp->b_actf = bp->b_actf; + TAILQ_REMOVE(&fdc->head, bp, b_act); fdc->fd->skip = 0; biodone(bp); fdc->state = FINDWORK; diff --git a/sys/dev/mcd/mcd.c b/sys/dev/mcd/mcd.c index 903f5c7db23..355b9113bd0 100644 --- a/sys/dev/mcd/mcd.c +++ b/sys/dev/mcd/mcd.c @@ -40,7 +40,7 @@ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * $Id: mcd.c,v 1.75 1996/03/28 14:28:45 scrappy Exp $ + * $Id: mcd.c,v 1.76 1996/04/07 17:32:14 bde Exp $ */ static char COPYRIGHT[] = "mcd-driver (C)1993 by H.Veit & B.Moore"; @@ -66,6 +66,7 @@ static char COPYRIGHT[] = "mcd-driver (C)1993 by H.Veit & B.Moore"; #include #endif /*DEVFS*/ +#include #include #include @@ -157,7 +158,7 @@ static struct mcd_data { short curr_mode; struct mcd_read2 lastpb; short debug; - struct buf head; /* head of buf queue */ + struct buf_queue_head head; /* head of buf queue */ struct mcd_mbx mbx; #ifdef DEVFS void *ra_devfs_token; /* store the devfs handle here */ @@ -427,7 +428,6 @@ void mcdstrategy(struct buf *bp) { struct mcd_data *cd; - struct buf *qp; int s; int unit = mcd_unit(bp->b_dev); @@ -479,9 +479,8 @@ MCD_TRACE("strategy: drive not valid\n"); } /* queue it */ - qp = &cd->head; s = splbio(); - disksort(qp,bp); + tqdisksort(&cd->head, bp); splx(s); /* now check whether we can perform processing */ @@ -499,8 +498,8 @@ done: static void mcd_start(int unit) { struct mcd_data *cd = mcd_data + unit; - struct buf *bp, *qp = &cd->head; struct partition *p; + struct buf *bp; register s = splbio(); if (cd->flags & MCDMBXBSY) { @@ -508,10 +507,11 @@ static void mcd_start(int unit) return; } - if ((bp = qp->b_actf) != 0) { + bp = TAILQ_FIRST(&cd->head); + if (bp != 0) { /* block found to process, dequeue */ /*MCD_TRACE("mcd_start: found block bp=0x%x\n",bp,0,0,0);*/ - qp->b_actf = bp->b_actf; /* changed from: bp->av_forw */ + TAILQ_REMOVE(&cd->head, bp, b_act); splx(s); } else { /* nothing to do */ diff --git a/sys/dev/scd/scd.c b/sys/dev/scd/scd.c index e8a6982d7f9..8532c662f4f 100644 --- a/sys/dev/scd/scd.c +++ b/sys/dev/scd/scd.c @@ -41,7 +41,7 @@ */ -/* $Id: scd.c,v 1.17 1996/01/15 10:28:32 phk Exp $ */ +/* $Id: scd.c,v 1.18 1996/03/28 14:28:50 scrappy Exp $ */ /* Please send any comments to micke@dynas.se */ @@ -142,7 +142,7 @@ static struct scd_data { struct ioc_play_msf last_play; short audio_status; - struct buf head; /* head of buf queue */ + struct buf_queue_head head; /* head of buf queue */ struct scd_mbx mbx; #ifdef DEVFS void *ra_devfs_token; @@ -351,7 +351,6 @@ static void scdstrategy(struct buf *bp) { struct scd_data *cd; - struct buf *qp; int s; int unit = scd_unit(bp->b_dev); @@ -396,9 +395,8 @@ scdstrategy(struct buf *bp) bp->b_resid = 0; /* queue it */ - qp = &cd->head; s = splbio(); - disksort(qp,bp); + tqdisksort(&cd->head, bp); splx(s); /* now check whether we can perform processing */ @@ -417,7 +415,7 @@ static void scd_start(int unit) { struct scd_data *cd = scd_data + unit; - struct buf *bp, *qp = &cd->head; + struct buf *bp; struct partition *p; register s = splbio(); @@ -426,9 +424,10 @@ scd_start(int unit) return; } - if ((bp = qp->b_actf) != 0) { + bp = TAILQ_FIRST(&cd->head); + if (bp != 0) { /* block found to process, dequeue */ - qp->b_actf = bp->b_actf; + TAILQ_REMOVE(&cd->head, bp, b_act); cd->flags |= SCDMBXBSY; splx(s); } else { diff --git a/sys/i386/isa/fd.c b/sys/i386/isa/fd.c index 10e38f9d7db..587973372d7 100644 --- a/sys/i386/isa/fd.c +++ b/sys/i386/isa/fd.c @@ -43,7 +43,7 @@ * SUCH DAMAGE. * * from: @(#)fd.c 7.4 (Berkeley) 5/25/91 - * $Id: fd.c,v 1.86 1996/04/07 17:32:12 bde Exp $ + * $Id: fd.c,v 1.87 1996/04/08 19:40:56 smpatel Exp $ * */ @@ -581,6 +581,7 @@ fdattach(struct isa_device *dev) fdc->state = DEVIDLE; /* reset controller, turn motor off, clear fdout mirror reg */ outb(fdc->baseport + FDOUT, ((fdc->fdout = 0))); + TAILQ_INIT(&fdc->head); /* check for each floppy drive */ for (fdup = isa_biotab_fdc; fdup->id_driver != 0; fdup++) { @@ -1126,7 +1127,6 @@ fdclose(dev_t dev, int flags, int mode, struct proc *p) void fdstrategy(struct buf *bp) { - register struct buf *dp; long nblocks, blknum; int s; fdcu_t fdcu; @@ -1187,9 +1187,8 @@ fdstrategy(struct buf *bp) } bp->b_cylin = blknum / (fd->ft->sectrac * fd->ft->heads); bp->b_pblkno = bp->b_blkno; - dp = &(fdc->head); s = splbio(); - disksort(dp, bp); + tqdisksort(&fdc->head, bp); untimeout(fd_turnoff, (caddr_t)fdu); /* a good idea */ fdstart(fdcu); splx(s); @@ -1227,11 +1226,10 @@ fd_timeout(void *arg1) fdcu_t fdcu = (fdcu_t)arg1; fdu_t fdu = fdc_data[fdcu].fdu; int baseport = fdc_data[fdcu].baseport; - struct buf *dp, *bp; + struct buf *bp; int s; - dp = &fdc_data[fdcu].head; - bp = dp->b_actf; + bp = TAILQ_FIRST(&fdc_data[fdcu].head); /* * Due to IBM's brain-dead design, the FDC has a faked ready @@ -1314,14 +1312,12 @@ fdstate(fdcu_t fdcu, fdc_p fdc) unsigned long blknum; fdu_t fdu = fdc->fdu; fd_p fd; - register struct buf *dp, *bp; + register struct buf *bp; struct fd_formb *finfo = NULL; size_t fdblk; - dp = &(fdc->head); - bp = dp->b_actf; - if(!bp) - { + bp = TAILQ_EMPTY(&fdc->head); + if(!bp) { /***********************************************\ * nothing left for this controller to do * * Force into the IDLE state, * @@ -1619,7 +1615,7 @@ fdstate(fdcu_t fdcu, fdc_p fdc) /* ALL DONE */ fd->skip = 0; bp->b_resid = 0; - dp->b_actf = bp->b_actf; + TAILQ_REMOVE(&fdc->head, bp, b_act); biodone(bp); fdc->fd = (fd_p) 0; fdc->fdu = -1; @@ -1727,10 +1723,9 @@ retrier(fdcu) fdcu_t fdcu; { fdc_p fdc = fdc_data + fdcu; - register struct buf *dp, *bp; + register struct buf *bp; - dp = &(fdc->head); - bp = dp->b_actf; + bp = TAILQ_FIRST(&fdc->head); if(fd_data[FDUNIT(minor(bp->b_dev))].options & FDOPT_NORETRY) goto fail; @@ -1774,7 +1769,7 @@ retrier(fdcu) bp->b_flags |= B_ERROR; bp->b_error = EIO; bp->b_resid = bp->b_bcount - fdc->fd->skip; - dp->b_actf = bp->b_actf; + TAILQ_REMOVE(&fdc->head, bp, b_act); fdc->fd->skip = 0; biodone(bp); fdc->state = FINDWORK; diff --git a/sys/i386/isa/fdc.h b/sys/i386/isa/fdc.h index 0216b7aa2e2..c0a99b8697d 100644 --- a/sys/i386/isa/fdc.h +++ b/sys/i386/isa/fdc.h @@ -31,7 +31,7 @@ * SUCH DAMAGE. * * from: @(#)fd.c 7.4 (Berkeley) 5/25/91 - * $Id: fdc.h,v 1.4 1994/10/10 01:12:26 phk Exp $ + * $Id: fdc.h,v 1.5 1995/01/06 15:19:41 joerg Exp $ * */ @@ -62,7 +62,7 @@ struct fdc_data u_long status[7]; /* copy of the registers */ enum fdc_type fdct; /* chip version of FDC */ int fdc_errs; /* number of logged errors */ - struct buf head; /* Head of buf chain */ + struct buf_queue_head head; /* Head of buf chain */ }; /***********************************************************************\ diff --git a/sys/i386/isa/mcd.c b/sys/i386/isa/mcd.c index 903f5c7db23..355b9113bd0 100644 --- a/sys/i386/isa/mcd.c +++ b/sys/i386/isa/mcd.c @@ -40,7 +40,7 @@ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * $Id: mcd.c,v 1.75 1996/03/28 14:28:45 scrappy Exp $ + * $Id: mcd.c,v 1.76 1996/04/07 17:32:14 bde Exp $ */ static char COPYRIGHT[] = "mcd-driver (C)1993 by H.Veit & B.Moore"; @@ -66,6 +66,7 @@ static char COPYRIGHT[] = "mcd-driver (C)1993 by H.Veit & B.Moore"; #include #endif /*DEVFS*/ +#include #include #include @@ -157,7 +158,7 @@ static struct mcd_data { short curr_mode; struct mcd_read2 lastpb; short debug; - struct buf head; /* head of buf queue */ + struct buf_queue_head head; /* head of buf queue */ struct mcd_mbx mbx; #ifdef DEVFS void *ra_devfs_token; /* store the devfs handle here */ @@ -427,7 +428,6 @@ void mcdstrategy(struct buf *bp) { struct mcd_data *cd; - struct buf *qp; int s; int unit = mcd_unit(bp->b_dev); @@ -479,9 +479,8 @@ MCD_TRACE("strategy: drive not valid\n"); } /* queue it */ - qp = &cd->head; s = splbio(); - disksort(qp,bp); + tqdisksort(&cd->head, bp); splx(s); /* now check whether we can perform processing */ @@ -499,8 +498,8 @@ done: static void mcd_start(int unit) { struct mcd_data *cd = mcd_data + unit; - struct buf *bp, *qp = &cd->head; struct partition *p; + struct buf *bp; register s = splbio(); if (cd->flags & MCDMBXBSY) { @@ -508,10 +507,11 @@ static void mcd_start(int unit) return; } - if ((bp = qp->b_actf) != 0) { + bp = TAILQ_FIRST(&cd->head); + if (bp != 0) { /* block found to process, dequeue */ /*MCD_TRACE("mcd_start: found block bp=0x%x\n",bp,0,0,0);*/ - qp->b_actf = bp->b_actf; /* changed from: bp->av_forw */ + TAILQ_REMOVE(&cd->head, bp, b_act); splx(s); } else { /* nothing to do */ diff --git a/sys/i386/isa/scd.c b/sys/i386/isa/scd.c index e8a6982d7f9..8532c662f4f 100644 --- a/sys/i386/isa/scd.c +++ b/sys/i386/isa/scd.c @@ -41,7 +41,7 @@ */ -/* $Id: scd.c,v 1.17 1996/01/15 10:28:32 phk Exp $ */ +/* $Id: scd.c,v 1.18 1996/03/28 14:28:50 scrappy Exp $ */ /* Please send any comments to micke@dynas.se */ @@ -142,7 +142,7 @@ static struct scd_data { struct ioc_play_msf last_play; short audio_status; - struct buf head; /* head of buf queue */ + struct buf_queue_head head; /* head of buf queue */ struct scd_mbx mbx; #ifdef DEVFS void *ra_devfs_token; @@ -351,7 +351,6 @@ static void scdstrategy(struct buf *bp) { struct scd_data *cd; - struct buf *qp; int s; int unit = scd_unit(bp->b_dev); @@ -396,9 +395,8 @@ scdstrategy(struct buf *bp) bp->b_resid = 0; /* queue it */ - qp = &cd->head; s = splbio(); - disksort(qp,bp); + tqdisksort(&cd->head, bp); splx(s); /* now check whether we can perform processing */ @@ -417,7 +415,7 @@ static void scd_start(int unit) { struct scd_data *cd = scd_data + unit; - struct buf *bp, *qp = &cd->head; + struct buf *bp; struct partition *p; register s = splbio(); @@ -426,9 +424,10 @@ scd_start(int unit) return; } - if ((bp = qp->b_actf) != 0) { + bp = TAILQ_FIRST(&cd->head); + if (bp != 0) { /* block found to process, dequeue */ - qp->b_actf = bp->b_actf; + TAILQ_REMOVE(&cd->head, bp, b_act); cd->flags |= SCDMBXBSY; splx(s); } else { diff --git a/sys/i386/isa/wd.c b/sys/i386/isa/wd.c index 1c7b5497127..df0a0d81355 100644 --- a/sys/i386/isa/wd.c +++ b/sys/i386/isa/wd.c @@ -34,7 +34,7 @@ * SUCH DAMAGE. * * from: @(#)wd.c 7.2 (Berkeley) 5/9/91 - * $Id: wd.c,v 1.106 1996/04/18 21:37:43 phk Exp $ + * $Id: wd.c,v 1.107 1996/05/02 10:43:10 phk Exp $ */ /* TODO: @@ -1196,7 +1196,7 @@ wdopen(dev_t dev, int flags, int fmt, struct proc *p) if ((du->dk_flags & DKFL_BSDLABEL) == 0) { /* * wdtab[ctrlr].b_active != 0 implies XXX applicable now ?? - * drive_queue[lunit].b_actf == NULL (?) XXX applicable now ?? + * drive_queue[lunit].b_act == NULL (?) XXX applicable now ?? * so the following guards most things (until the next i/o). * It doesn't guard against a new i/o starting and being * affected by the label being changed. Sigh. diff --git a/sys/isa/fd.c b/sys/isa/fd.c index 10e38f9d7db..587973372d7 100644 --- a/sys/isa/fd.c +++ b/sys/isa/fd.c @@ -43,7 +43,7 @@ * SUCH DAMAGE. * * from: @(#)fd.c 7.4 (Berkeley) 5/25/91 - * $Id: fd.c,v 1.86 1996/04/07 17:32:12 bde Exp $ + * $Id: fd.c,v 1.87 1996/04/08 19:40:56 smpatel Exp $ * */ @@ -581,6 +581,7 @@ fdattach(struct isa_device *dev) fdc->state = DEVIDLE; /* reset controller, turn motor off, clear fdout mirror reg */ outb(fdc->baseport + FDOUT, ((fdc->fdout = 0))); + TAILQ_INIT(&fdc->head); /* check for each floppy drive */ for (fdup = isa_biotab_fdc; fdup->id_driver != 0; fdup++) { @@ -1126,7 +1127,6 @@ fdclose(dev_t dev, int flags, int mode, struct proc *p) void fdstrategy(struct buf *bp) { - register struct buf *dp; long nblocks, blknum; int s; fdcu_t fdcu; @@ -1187,9 +1187,8 @@ fdstrategy(struct buf *bp) } bp->b_cylin = blknum / (fd->ft->sectrac * fd->ft->heads); bp->b_pblkno = bp->b_blkno; - dp = &(fdc->head); s = splbio(); - disksort(dp, bp); + tqdisksort(&fdc->head, bp); untimeout(fd_turnoff, (caddr_t)fdu); /* a good idea */ fdstart(fdcu); splx(s); @@ -1227,11 +1226,10 @@ fd_timeout(void *arg1) fdcu_t fdcu = (fdcu_t)arg1; fdu_t fdu = fdc_data[fdcu].fdu; int baseport = fdc_data[fdcu].baseport; - struct buf *dp, *bp; + struct buf *bp; int s; - dp = &fdc_data[fdcu].head; - bp = dp->b_actf; + bp = TAILQ_FIRST(&fdc_data[fdcu].head); /* * Due to IBM's brain-dead design, the FDC has a faked ready @@ -1314,14 +1312,12 @@ fdstate(fdcu_t fdcu, fdc_p fdc) unsigned long blknum; fdu_t fdu = fdc->fdu; fd_p fd; - register struct buf *dp, *bp; + register struct buf *bp; struct fd_formb *finfo = NULL; size_t fdblk; - dp = &(fdc->head); - bp = dp->b_actf; - if(!bp) - { + bp = TAILQ_EMPTY(&fdc->head); + if(!bp) { /***********************************************\ * nothing left for this controller to do * * Force into the IDLE state, * @@ -1619,7 +1615,7 @@ fdstate(fdcu_t fdcu, fdc_p fdc) /* ALL DONE */ fd->skip = 0; bp->b_resid = 0; - dp->b_actf = bp->b_actf; + TAILQ_REMOVE(&fdc->head, bp, b_act); biodone(bp); fdc->fd = (fd_p) 0; fdc->fdu = -1; @@ -1727,10 +1723,9 @@ retrier(fdcu) fdcu_t fdcu; { fdc_p fdc = fdc_data + fdcu; - register struct buf *dp, *bp; + register struct buf *bp; - dp = &(fdc->head); - bp = dp->b_actf; + bp = TAILQ_FIRST(&fdc->head); if(fd_data[FDUNIT(minor(bp->b_dev))].options & FDOPT_NORETRY) goto fail; @@ -1774,7 +1769,7 @@ retrier(fdcu) bp->b_flags |= B_ERROR; bp->b_error = EIO; bp->b_resid = bp->b_bcount - fdc->fd->skip; - dp->b_actf = bp->b_actf; + TAILQ_REMOVE(&fdc->head, bp, b_act); fdc->fd->skip = 0; biodone(bp); fdc->state = FINDWORK; diff --git a/sys/isa/fdc.h b/sys/isa/fdc.h index 0216b7aa2e2..c0a99b8697d 100644 --- a/sys/isa/fdc.h +++ b/sys/isa/fdc.h @@ -31,7 +31,7 @@ * SUCH DAMAGE. * * from: @(#)fd.c 7.4 (Berkeley) 5/25/91 - * $Id: fdc.h,v 1.4 1994/10/10 01:12:26 phk Exp $ + * $Id: fdc.h,v 1.5 1995/01/06 15:19:41 joerg Exp $ * */ @@ -62,7 +62,7 @@ struct fdc_data u_long status[7]; /* copy of the registers */ enum fdc_type fdct; /* chip version of FDC */ int fdc_errs; /* number of logged errors */ - struct buf head; /* Head of buf chain */ + struct buf_queue_head head; /* Head of buf chain */ }; /***********************************************************************\