fix and use microtime; more spl[67]'s bite the dust
SCCS-vsn: sys/vax/vax/machdep.c 6.23
* All rights reserved. The Berkeley software License Agreement
* specifies the terms and conditions for redistribution.
*
* All rights reserved. The Berkeley software License Agreement
* specifies the terms and conditions for redistribution.
*
- * @(#)machdep.c 6.22 (Berkeley) %G%
+ * @(#)machdep.c 6.23 (Berkeley) %G%
waittime = 0;
(void) splnet();
printf("syncing disks... ");
waittime = 0;
(void) splnet();
printf("syncing disks... ");
+ /*
+ * Release inodes held by texts before update.
+ */
+ xumount(NODEV);
update();
{ register struct buf *bp;
int iter, nbusy;
update();
{ register struct buf *bp;
int iter, nbusy;
+ /*
+ * If we've been adjusting the clock, the todr
+ * will be out of synch; adjust it now.
+ */
+ resettodr();
}
splx(0x1f); /* extreme priority */
devtype = major(rootdev);
}
splx(0x1f); /* extreme priority */
devtype = major(rootdev);
+ register struct timeval *tvp;
- tvp->tv_sec = time.tv_sec;
- tvp->tv_usec = (lbolt+1)*16667 + mfpr(ICR);
+ *tvp = time;
+ tvp->tv_usec += tick + mfpr(ICR);
while (tvp->tv_usec > 1000000) {
tvp->tv_sec++;
tvp->tv_usec -= 1000000;
}
splx(s);
}
while (tvp->tv_usec > 1000000) {
tvp->tv_sec++;
tvp->tv_usec -= 1000000;
}
splx(s);
}
physstrat(bp, strat, prio)
struct buf *bp;
physstrat(bp, strat, prio)
struct buf *bp;
/* pageout daemon doesn't wait for pushed pages */
if (bp->b_flags & B_DIRTY)
return;
/* pageout daemon doesn't wait for pushed pages */
if (bp->b_flags & B_DIRTY)
return;
while ((bp->b_flags & B_DONE) == 0)
sleep((caddr_t)bp, prio);
splx(s);
while ((bp->b_flags & B_DONE) == 0)
sleep((caddr_t)bp, prio);
splx(s);