-tsread(dev, uio)
- dev_t dev;
- struct uio *uio;
-{
- int errno;
-
- errno = tsphys(dev, uio);
- if (errno)
- return (errno);
- return (physio(tsstrategy, &rtsbuf[TSUNIT(dev)], dev, B_READ, minphys, uio));
-}
-
-tswrite(dev, uio)
- dev_t dev;
- struct uio *uio;
-{
- int errno;
-
- errno = tsphys(dev, uio);
- if (errno)
- return (errno);
- return (physio(tsstrategy, &rtsbuf[TSUNIT(dev)], dev, B_WRITE, minphys, uio));
-}
-
-/*
- * Check that a raw device exists.
- * If it does, set up sc_blkno and sc_nxrec
- * so that the tape will appear positioned correctly.
- */
-tsphys(dev, uio)
- dev_t dev;
- struct uio *uio;
-{
- register int tsunit = TSUNIT(dev);
- register daddr_t a;
- register struct ts_softc *sc;
- register struct uba_device *ui;
-
- if (tsunit >= NTS || (ui=tsdinfo[tsunit]) == 0 || ui->ui_alive == 0)
- return (ENXIO);
- sc = &ts_softc[tsunit];
- a = bdbtofsb(uio->uio_offset >> 9);
- sc->sc_blkno = a;
- sc->sc_nxrec = a + 1;
- return (0);
-}
-