summary |
tags |
clone url |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
7da157d)
SCCS-vsn: sys/vax/mba/hp.c 4.56
SCCS-vsn: sys/vax/mba/ht.c 4.30
SCCS-vsn: sys/vax/mba/mt.c 4.11
-/* hp.c 4.55 82/10/10 */
+/* hp.c 4.56 82/10/17 */
#ifdef HPDEBUG
int hpdebug;
#ifdef HPDEBUG
int hpdebug;
+hpopen(dev)
+ dev_t dev;
+{
+ register int unit = minor(dev) >> 3;
+ register struct mba_device *mi;
+
+ if (unit >= NHP || (mi = hpinfo[unit]) == 0 || mi->mi_alive == 0)
+ return (ENXIO);
+ return (0);
+}
+
hpstrategy(bp)
register struct buf *bp;
{
hpstrategy(bp)
register struct buf *bp;
{
case DKIOCHDR: /* do header read/write */
hphdr[minor(dev)>>3] = 1;
case DKIOCHDR: /* do header read/write */
hphdr[minor(dev)>>3] = 1;
-/* ht.c 4.29 82/10/10 */
+/* ht.c 4.30 82/10/17 */
#include "tu.h"
#if NHT > 0
#include "tu.h"
#if NHT > 0
tuunit = TUUNIT(dev);
if (tuunit >= NTU || (sc = &tu_softc[tuunit])->sc_openf ||
tuunit = TUUNIT(dev);
if (tuunit >= NTU || (sc = &tu_softc[tuunit])->sc_openf ||
- (mi = htinfo[HTUNIT(dev)]) == 0 || mi->mi_alive == 0) {
- u.u_error = ENXIO;
- return;
- }
+ (mi = htinfo[HTUNIT(dev)]) == 0 || mi->mi_alive == 0)
+ return (ENXIO);
olddens = sc->sc_dens;
dens = sc->sc_dens =
((minor(dev)&H_1600BPI)?HTTC_1600BPI:HTTC_800BPI)|
olddens = sc->sc_dens;
dens = sc->sc_dens =
((minor(dev)&H_1600BPI)?HTTC_1600BPI:HTTC_800BPI)|
sc->sc_dens = olddens;
if ((sc->sc_dsreg & HTDS_MOL) == 0) {
uprintf("tu%d: not online\n", tuunit);
sc->sc_dens = olddens;
if ((sc->sc_dsreg & HTDS_MOL) == 0) {
uprintf("tu%d: not online\n", tuunit);
- u.u_error = EIO;
- return;
}
if ((flag&FWRITE) && (sc->sc_dsreg&HTDS_WRL)) {
uprintf("tu%d: no write ring\n", tuunit);
}
if ((flag&FWRITE) && (sc->sc_dsreg&HTDS_WRL)) {
uprintf("tu%d: no write ring\n", tuunit);
- u.u_error = EIO;
- return;
}
if ((sc->sc_dsreg & HTDS_BOT) == 0 && (flag&FWRITE) &&
dens != sc->sc_dens) {
uprintf("tu%d: can't change density in mid-tape\n", tuunit);
}
if ((sc->sc_dsreg & HTDS_BOT) == 0 && (flag&FWRITE) &&
dens != sc->sc_dens) {
uprintf("tu%d: can't change density in mid-tape\n", tuunit);
- u.u_error = EIO;
- return;
}
sc->sc_openf = 1;
sc->sc_blkno = (daddr_t)0;
sc->sc_nxrec = INF;
sc->sc_flags = 0;
sc->sc_dens = dens;
}
sc->sc_openf = 1;
sc->sc_blkno = (daddr_t)0;
sc->sc_nxrec = INF;
sc->sc_flags = 0;
sc->sc_dens = dens;
- u.u_error = ENXIO;
- return;
- }
- if (callcount <= 0 || fcount <= 0) {
- u.u_error = ENXIO;
- return;
+ if (callcount <= 0 || fcount <= 0)
+ return (EINVAL);
while (--callcount >= 0) {
htcommand(dev, htops[mtop->mt_op], fcount);
if ((mtop->mt_op == MTFSR || mtop->mt_op == MTBSR) &&
while (--callcount >= 0) {
htcommand(dev, htops[mtop->mt_op], fcount);
if ((mtop->mt_op == MTFSR || mtop->mt_op == MTBSR) &&
- bp->b_resid) {
- u.u_error = EIO;
- break;
- }
+ bp->b_resid)
+ return (EIO);
if ((bp->b_flags&B_ERROR) || sc->sc_dsreg&HTDS_BOT)
break;
}
if ((bp->b_flags&B_ERROR) || sc->sc_dsreg&HTDS_BOT)
break;
}
- geterror(bp);
- return;
+ geterror(bp); /* XXX */
+ return (u.u_error); /* XXX */
case MTIOCGET:
mtget = (struct mtget *)data;
case MTIOCGET:
mtget = (struct mtget *)data;
mtget->mt_erreg = sc->sc_erreg;
mtget->mt_resid = sc->sc_resid;
mtget->mt_type = MT_ISHT;
mtget->mt_erreg = sc->sc_erreg;
mtget->mt_resid = sc->sc_resid;
mtget->mt_type = MT_ISHT;
-/* mt.c 4.10 82/10/10 */
+/* mt.c 4.11 82/10/17 */
#include "mu.h"
#if NMT > 0
#include "mu.h"
#if NMT > 0
muunit = MUUNIT(dev);
if (muunit >= NMU || (sc = &mu_softc[muunit])->sc_openf ||
muunit = MUUNIT(dev);
if (muunit >= NMU || (sc = &mu_softc[muunit])->sc_openf ||
- (mi = mtinfo[MTUNIT(dev)]) == 0 || mi->mi_alive == 0) {
- u.u_error = ENXIO;
- return;
- }
+ (mi = mtinfo[MTUNIT(dev)]) == 0 || mi->mi_alive == 0)
+ return (ENXIO);
olddens = sc->sc_dens;
dens = sc->sc_dens = (minor(dev)&H_6250BPI) ? MT_GCR : 0;
mtcommand(dev, MT_SENSE, 1);
sc->sc_dens = olddens;
if ((sc->sc_dsreg & MTDS_ONL) == 0) {
uprintf("mu%d: not online\n", muunit);
olddens = sc->sc_dens;
dens = sc->sc_dens = (minor(dev)&H_6250BPI) ? MT_GCR : 0;
mtcommand(dev, MT_SENSE, 1);
sc->sc_dens = olddens;
if ((sc->sc_dsreg & MTDS_ONL) == 0) {
uprintf("mu%d: not online\n", muunit);
- u.u_error = EIO;
- return;
}
if ((flag&FWRITE) && (sc->sc_dsreg&MTDS_FPT)) {
uprintf("mu%d: no write ring\n", muunit);
}
if ((flag&FWRITE) && (sc->sc_dsreg&MTDS_FPT)) {
uprintf("mu%d: no write ring\n", muunit);
- u.u_error = EIO;
- return;
}
if ((sc->sc_dsreg & MTDS_BOT) == 0 && (flag&FWRITE) &&
dens != sc->sc_dens) {
uprintf("mu%d: can't change density in mid-tape\n", muunit);
}
if ((sc->sc_dsreg & MTDS_BOT) == 0 && (flag&FWRITE) &&
dens != sc->sc_dens) {
uprintf("mu%d: can't change density in mid-tape\n", muunit);
- u.u_error = EIO;
- return;
}
sc->sc_openf = 1;
sc->sc_blkno = (daddr_t)0;
sc->sc_nxrec = INF;
sc->sc_flags = 0;
sc->sc_dens = dens;
}
sc->sc_openf = 1;
sc->sc_blkno = (daddr_t)0;
sc->sc_nxrec = INF;
sc->sc_flags = 0;
sc->sc_dens = dens;
- u.u_error = ENXIO;
- return;
- }
- if (callcount <= 0 || fcount <= 0) {
- u.u_error = ENXIO;
- return;
+ if (callcount <= 0 || fcount <= 0)
+ return (EINVAL);
op = mtops[mtop->mt_op];
if (op == MT_WTM)
op |= sc->sc_dens;
op = mtops[mtop->mt_op];
if (op == MT_WTM)
op |= sc->sc_dens;
fcount -= n;
} while (fcount);
if ((mtop->mt_op == MTFSR || mtop->mt_op == MTBSR) &&
fcount -= n;
} while (fcount);
if ((mtop->mt_op == MTFSR || mtop->mt_op == MTBSR) &&
- bp->b_resid) {
- u.u_error = EIO;
- break;
- }
+ bp->b_resid)
+ return (EIO);
if (bp->b_flags&B_ERROR)
break;
}
if (bp->b_flags&B_ERROR)
break;
}
- geterror(bp);
- return;
+ geterror(bp); /* XXX */
+ return (u.u_error); /* XXX */
case MTIOCGET:
mtget = (struct mtget *)data;
case MTIOCGET:
mtget = (struct mtget *)data;
mtcommand(dev, MT_SENSE, 1); /* update drive status */
mtget->mt_dsreg = sc->sc_dsreg;
mtget->mt_type = MT_ISMT;
mtcommand(dev, MT_SENSE, 1); /* update drive status */
mtget->mt_dsreg = sc->sc_dsreg;
mtget->mt_type = MT_ISMT;