ioctl/open return errors, not u.u_error; remove ubarelses (it is
authorBill Joy <root@ucbvax.Berkeley.EDU>
Mon, 18 Oct 1982 03:52:32 +0000 (19:52 -0800)
committerBill Joy <root@ucbvax.Berkeley.EDU>
Mon, 18 Oct 1982 03:52:32 +0000 (19:52 -0800)
now done in uba.c); add open routines to some disk drivers

SCCS-vsn: sys/vax/uba/ad.c 4.6
SCCS-vsn: sys/vax/uba/ct.c 4.11
SCCS-vsn: sys/vax/uba/dh.c 4.53
SCCS-vsn: sys/vax/uba/dmf.c 4.10
SCCS-vsn: sys/vax/uba/dn.c 4.9
SCCS-vsn: sys/vax/uba/dz.c 4.46
SCCS-vsn: sys/vax/uba/idc.c 4.7
SCCS-vsn: sys/vax/uba/lp.c 4.30
SCCS-vsn: sys/vax/uba/lpa.c 4.8
SCCS-vsn: sys/vax/uba/ps.c 4.7
SCCS-vsn: sys/vax/uba/rk.c 4.48
SCCS-vsn: sys/vax/uba/tm.c 4.56
SCCS-vsn: sys/vax/uba/ts.c 4.31
SCCS-vsn: sys/vax/uba/uba.c 4.51
SCCS-vsn: sys/vax/uba/uda.c 4.11
SCCS-vsn: sys/vax/uba/ut.c 4.20
SCCS-vsn: sys/vax/uba/vp.c 4.21

17 files changed:
usr/src/sys/vax/uba/ad.c
usr/src/sys/vax/uba/ct.c
usr/src/sys/vax/uba/dh.c
usr/src/sys/vax/uba/dmf.c
usr/src/sys/vax/uba/dn.c
usr/src/sys/vax/uba/dz.c
usr/src/sys/vax/uba/idc.c
usr/src/sys/vax/uba/lp.c
usr/src/sys/vax/uba/lpa.c
usr/src/sys/vax/uba/ps.c
usr/src/sys/vax/uba/rk.c
usr/src/sys/vax/uba/tm.c
usr/src/sys/vax/uba/ts.c
usr/src/sys/vax/uba/uba.c
usr/src/sys/vax/uba/uda.c
usr/src/sys/vax/uba/ut.c
usr/src/sys/vax/uba/vp.c

index 8153cf1..9a0e7d1 100644 (file)
@@ -1,4 +1,4 @@
-/*     ad.c    4.5     82/10/10        */
+/*     ad.c    4.6     82/10/17        */
 
 #include "ad.h"
 #if NAD > 0
 
 #include "ad.h"
 #if NAD > 0
@@ -42,7 +42,7 @@ struct ad {
 adprobe(reg)
        caddr_t reg;
 {
 adprobe(reg)
        caddr_t reg;
 {
-       register int br, cvec;
+       register int br, cvec;          /* value-result */
        register struct addevice *adaddr = (struct addevice *) reg;
 
        adaddr->ad_csr = AD_IENABLE | AD_START;
        register struct addevice *adaddr = (struct addevice *) reg;
 
        adaddr->ad_csr = AD_IENABLE | AD_START;
@@ -51,9 +51,11 @@ adprobe(reg)
        return (sizeof (struct addevice));
 }
 
        return (sizeof (struct addevice));
 }
 
+/*ARGSUSED*/
 adattach(ui)
        struct uba_device *ui;
 {
 adattach(ui)
        struct uba_device *ui;
 {
+
 }
 
 adopen(dev)
 }
 
 adopen(dev)
@@ -62,15 +64,14 @@ adopen(dev)
        register struct ad *adp;
        register struct uba_device *ui;
 
        register struct ad *adp;
        register struct uba_device *ui;
 
-       if(ADUNIT(dev) >= NAD || (adp = &ad[ADUNIT(dev)])->ad_open ||
-               (ui = addinfo[ADUNIT(dev)]) == 0 || ui->ui_alive == 0) {
-                       u.u_error = ENXIO;
-                       return;
-       }
+       if (ADUNIT(dev) >= NAD || (adp = &ad[ADUNIT(dev)])->ad_open ||
+           (ui = addinfo[ADUNIT(dev)]) == 0 || ui->ui_alive == 0)
+               return (ENXIO);
        adp->ad_open = 1;
        adp->ad_icnt = 0;
        adp->ad_state = 0;
        adp->ad_uid = u.u_uid;
        adp->ad_open = 1;
        adp->ad_icnt = 0;
        adp->ad_state = 0;
        adp->ad_uid = u.u_uid;
+       return (0);
 }
 
 adclose(dev)
 }
 
 adclose(dev)
@@ -87,7 +88,7 @@ adioctl(dev, cmd, addr, flag)
        register caddr_t addr;
 {
        register struct addevice *adaddr =
        register caddr_t addr;
 {
        register struct addevice *adaddr =
-                       (struct addevice *) addinfo[ADUNIT(dev)]->ui_addr;
+           (struct addevice *) addinfo[ADUNIT(dev)]->ui_addr;
        register struct uba_device *ui = addinfo[ADUNIT(dev)];
        register struct ad *adp;
        register int i;
        register struct uba_device *ui = addinfo[ADUNIT(dev)];
        register struct ad *adp;
        register int i;
@@ -105,21 +106,22 @@ adioctl(dev, cmd, addr, flag)
                spl6();
                adaddr->ad_csr = adp->ad_chan;
                i = 1000;
                spl6();
                adaddr->ad_csr = adp->ad_chan;
                i = 1000;
-               while(i-- > 0 && (adaddr->ad_csr&037400) != adp->ad_chan) {
+               while (i-- > 0 && (adaddr->ad_csr&037400) != adp->ad_chan) {
                        adp->ad_loop++;
                        adaddr->ad_csr = adp->ad_chan;
                }
                adp->ad_state |= ADBUSY;
                adaddr->ad_csr |= AD_IENABLE|AD_START;
                        adp->ad_loop++;
                        adaddr->ad_csr = adp->ad_chan;
                }
                adp->ad_state |= ADBUSY;
                adaddr->ad_csr |= AD_IENABLE|AD_START;
-               while(adp->ad_state&ADBUSY)
+               while (adp->ad_state&ADBUSY)
                        sleep((caddr_t)adp, ADWAITPRI);
                spl0();
                *(int *)data = adp->ad_softdata;
                break;
 
        default:
                        sleep((caddr_t)adp, ADWAITPRI);
                spl0();
                *(int *)data = adp->ad_softdata;
                break;
 
        default:
-               u.u_error = ENOTTY;     /* Not a legal ioctl cmd. */
+               return (ENOTTY);        /* Not a legal ioctl cmd. */
        }
        }
+       return (0);
 }
 
 /*ARGSUSED*/
 }
 
 /*ARGSUSED*/
index da81b8c..ac88887 100644 (file)
@@ -1,4 +1,4 @@
-/*     ct.c    4.10    82/10/10        */
+/*     ct.c    4.11    82/10/17        */
 
 #include "ct.h"
 #if NCT > 0
 
 #include "ct.h"
 #if NCT > 0
@@ -75,12 +75,11 @@ ctopen(dev)
        register struct ctdevice *ctaddr;
 
        if (CTUNIT(dev) >= NCT || (ui = ctdinfo[CTUNIT(dev)]) == 0 ||
        register struct ctdevice *ctaddr;
 
        if (CTUNIT(dev) >= NCT || (ui = ctdinfo[CTUNIT(dev)]) == 0 ||
-           ui->ui_alive == 0 || (sc = &ct_softc[CTUNIT(dev)])->sc_openf) {
-               u.u_error = ENXIO;
-               return;
-       }
+           ui->ui_alive == 0 || (sc = &ct_softc[CTUNIT(dev)])->sc_openf)
+               return (ENXIO);
        sc->sc_openf = 1;
        ctaddr->ctcsr |= IENABLE;
        sc->sc_openf = 1;
        ctaddr->ctcsr |= IENABLE;
+       return (0);
 }
 
 ctclose(dev)
 }
 
 ctclose(dev)
index f4ae51a..65e9e29 100644 (file)
@@ -1,4 +1,4 @@
-/*     dh.c    4.52    82/10/10        */
+/*     dh.c    4.53    82/10/17        */
 
 #include "dh.h"
 #if NDH > 0
 
 #include "dh.h"
 #if NDH > 0
@@ -237,15 +237,11 @@ dhopen(dev, flag)
 
        unit = minor(dev);
        dh = unit >> 4;
 
        unit = minor(dev);
        dh = unit >> 4;
-       if (unit >= NDH*16 || (ui = dhinfo[dh])== 0 || ui->ui_alive == 0) {
-               u.u_error = ENXIO;
-               return;
-       }
+       if (unit >= NDH*16 || (ui = dhinfo[dh])== 0 || ui->ui_alive == 0)
+               return (ENXIO);
        tp = &dh11[unit];
        tp = &dh11[unit];
-       if (tp->t_state&TS_XCLUDE && u.u_uid!=0) {
-               u.u_error = EBUSY;
-               return;
-       }
+       if (tp->t_state&TS_XCLUDE && u.u_uid!=0)
+               return (EBUSY);
        addr = (struct dhdevice *)ui->ui_addr;
        tp->t_addr = (caddr_t)addr;
        tp->t_oproc = dhstart;
        addr = (struct dhdevice *)ui->ui_addr;
        tp->t_addr = (caddr_t)addr;
        tp->t_oproc = dhstart;
@@ -288,7 +284,7 @@ dhopen(dev, flag)
         * Wait for carrier, then process line discipline specific open.
         */
        dmopen(dev);
         * Wait for carrier, then process line discipline specific open.
         */
        dmopen(dev);
-       (*linesw[tp->t_line].l_open)(dev, tp);
+       return ((*linesw[tp->t_line].l_open)(dev, tp));
 }
 
 /*
 }
 
 /*
@@ -397,16 +393,20 @@ dhioctl(dev, cmd, data, flag)
        caddr_t data;
 {
        register struct tty *tp;
        caddr_t data;
 {
        register struct tty *tp;
-       register unit = minor(dev);
+       register int unit = minor(dev);
+       int error;
 
        tp = &dh11[unit];
 
        tp = &dh11[unit];
-       cmd = (*linesw[tp->t_line].l_ioctl)(tp, cmd, data, flag);
-       if (cmd == 0)
-               return;
-       if (ttioctl(tp, cmd, data, flag)) {
+       error = (*linesw[tp->t_line].l_ioctl)(tp, cmd, data, flag);
+       if (error >= 0)
+               return (error);
+       error = ttioctl(tp, cmd, data, flag);
+       if (error >= 0) {
                if (cmd == TIOCSETP || cmd == TIOCSETN)
                        dhparam(unit);
                if (cmd == TIOCSETP || cmd == TIOCSETN)
                        dhparam(unit);
-       } else switch(cmd) {
+               return (error);
+       }
+       switch (cmd) {
 
        case TIOCSBRK:
                ((struct dhdevice *)(tp->t_addr))->dhbreak |= 1<<(unit&017);
 
        case TIOCSBRK:
                ((struct dhdevice *)(tp->t_addr))->dhbreak |= 1<<(unit&017);
@@ -425,8 +425,9 @@ dhioctl(dev, cmd, data, flag)
                break;
 
        default:
                break;
 
        default:
-               u.u_error = ENOTTY;
+               return (ENOTTY);
        }
        }
+       return (0);
 }
 
 /*
 }
 
 /*
@@ -649,7 +650,6 @@ dhreset(uban)
 
        if (dh_ubinfo[uban] == 0)
                return;
 
        if (dh_ubinfo[uban] == 0)
                return;
-       ubarelse(uban, &dh_ubinfo[uban]);
        dh_ubinfo[uban] = uballoc(uban, (caddr_t)cfree,
            512+nclist*sizeof (struct cblock), 0);
        cbase[uban] = dh_ubinfo[uban]&0x3ffff;
        dh_ubinfo[uban] = uballoc(uban, (caddr_t)cfree,
            512+nclist*sizeof (struct cblock), 0);
        cbase[uban] = dh_ubinfo[uban]&0x3ffff;
index 3cc7706..9280b57 100644 (file)
@@ -1,4 +1,4 @@
-/*     dmf.c   4.9     82/10/13        */
+/*     dmf.c   4.10    82/10/17        */
 
 #include "dmf.h"
 #if NDMF > 0
 
 #include "dmf.h"
 #if NDMF > 0
@@ -221,15 +221,11 @@ dmfopen(dev, flag)
 
        unit = minor(dev);
        dmf = unit >> 3;
 
        unit = minor(dev);
        dmf = unit >> 3;
-       if (unit >= NDMF*8 || (ui = dmfinfo[dmf])== 0 || ui->ui_alive == 0) {
-               u.u_error = ENXIO;
-               return;
-       }
+       if (unit >= NDMF*8 || (ui = dmfinfo[dmf])== 0 || ui->ui_alive == 0)
+               return (ENXIO);
        tp = &dmf_tty[unit];
        tp = &dmf_tty[unit];
-       if (tp->t_state&TS_XCLUDE && u.u_uid!=0) {
-               u.u_error = EBUSY;
-               return;
-       }
+       if (tp->t_state&TS_XCLUDE && u.u_uid!=0)
+               return (EBUSY);
        addr = (struct dmfdevice *)ui->ui_addr;
        tp->t_addr = (caddr_t)addr;
        tp->t_oproc = dmfstart;
        addr = (struct dmfdevice *)ui->ui_addr;
        tp->t_addr = (caddr_t)addr;
        tp->t_oproc = dmfstart;
@@ -277,7 +273,7 @@ dmfopen(dev, flag)
                sleep((caddr_t)&tp->t_rawq, TTIPRI);
        }
        splx(s);
                sleep((caddr_t)&tp->t_rawq, TTIPRI);
        }
        splx(s);
-       (*linesw[tp->t_line].l_open)(dev, tp);
+       return ((*linesw[tp->t_line].l_open)(dev, tp));
 }
 
 /*
 }
 
 /*
@@ -408,15 +404,19 @@ dmfioctl(dev, cmd, data, flag)
        register int unit = minor(dev);
        register int dmf = unit >> 3;
        register struct device *dmfaddr;
        register int unit = minor(dev);
        register int dmf = unit >> 3;
        register struct device *dmfaddr;
+       int error;
  
        tp = &dmf_tty[unit];
  
        tp = &dmf_tty[unit];
-       cmd = (*linesw[tp->t_line].l_ioctl)(tp, cmd, data, flag);
-       if (cmd == 0)
-               return;
-       if (ttioctl(tp, cmd, data, flag)) {
+       error = (*linesw[tp->t_line].l_ioctl)(tp, cmd, data, flag);
+       if (error >= 0)
+               return (error);
+       error = ttioctl(tp, cmd, data, flag);
+       if (error >= 0) {
                if (cmd == TIOCSETP || cmd == TIOCSETN)
                        dmfparam(unit);
                if (cmd == TIOCSETP || cmd == TIOCSETN)
                        dmfparam(unit);
-       } else switch(cmd) {
+               return (error);
+       }
+       switch (cmd) {
 
        case TIOCSBRK:
                dmfmctl(dev, DMF_BRK, DMBIS);
 
        case TIOCSBRK:
                dmfmctl(dev, DMF_BRK, DMBIS);
@@ -451,8 +451,9 @@ dmfioctl(dev, cmd, data, flag)
                break;
 
        default:
                break;
 
        default:
-               u.u_error = ENOTTY;
+               return (ENOTTY);
        }
        }
+       return (0);
 }
 
 dmtodmf(bits)
 }
 
 dmtodmf(bits)
@@ -766,7 +767,6 @@ dmfreset(uban)
 #ifdef DMFDMA
        if (dmf_ubinfo[uban] == 0)
                return;
 #ifdef DMFDMA
        if (dmf_ubinfo[uban] == 0)
                return;
-       ubarelse(uban, &dmf_ubinfo[uban]);
        dmf_ubinfo[uban] = uballoc(uban, (caddr_t)cfree,
            nclist*sizeof (struct cblock), 0);
        cbase[uban] = dmf_ubinfo[uban]&0x3ffff;
        dmf_ubinfo[uban] = uballoc(uban, (caddr_t)cfree,
            nclist*sizeof (struct cblock), 0);
        cbase[uban] = dmf_ubinfo[uban]&0x3ffff;
index d41a016..21e1fa4 100644 (file)
@@ -1,4 +1,4 @@
-/*     dn.c    4.8     82/10/10        */
+/*     dn.c    4.9     82/10/17        */
 
 #include "dn.h"
 #if NDN > 0
 
 #include "dn.h"
 #if NDN > 0
@@ -69,7 +69,9 @@ dnprobe(reg)
 
 dnattach(ui)
        struct uba_device *ui;
 
 dnattach(ui)
        struct uba_device *ui;
-{}
+{
+
+}
 
 /*ARGSUSED*/
 dnopen(dev, flag)
 
 /*ARGSUSED*/
 dnopen(dev, flag)
@@ -81,23 +83,18 @@ dnopen(dev, flag)
        register short dialer;
 
        if ((unit = DNUNIT(dev)) >= NDN || (ui = dninfo[unit]) == 0 ||
        register short dialer;
 
        if ((unit = DNUNIT(dev)) >= NDN || (ui = dninfo[unit]) == 0 ||
-           ui->ui_alive == 0) {
-               u.u_error = ENXIO;
-               return;
-       }
+           ui->ui_alive == 0)
+               return (ENXIO);
        dialer = DNREG(dev);
        dp = (struct dndevice *)ui->ui_addr;
        dialer = DNREG(dev);
        dp = (struct dndevice *)ui->ui_addr;
-       if (dp->dn_reg[dialer] & PWI) {
-               u.u_error = ENXIO;
-               return;
-       }
+       if (dp->dn_reg[dialer] & PWI)
+               return (ENXIO);
        dnreg = &(dp->dn_reg[dialer]);
        dnreg = &(dp->dn_reg[dialer]);
-       if (*dnreg&(DLO|CRQ)) {
-               u.u_error = EBUSY;
-               return;
-       }
+       if (*dnreg&(DLO|CRQ))
+               return (EBUSY);
        dp->dn_reg[0] |= MENABLE;
        *dnreg = IENABLE|MENABLE|CRQ;
        dp->dn_reg[0] |= MENABLE;
        *dnreg = IENABLE|MENABLE|CRQ;
+       return (0);
 }
 
 /*ARGSUSED*/
 }
 
 /*ARGSUSED*/
index 0e3c18d..5f7ff84 100644 (file)
@@ -1,4 +1,4 @@
-/*     dz.c    4.45    82/10/13        */
+/*     dz.c    4.46    82/10/17        */
 
 #include "dz.h"
 #if NDZ > 0
 
 #include "dz.h"
 #if NDZ > 0
@@ -208,10 +208,8 @@ dzopen(dev, flag)
        register int unit;
  
        unit = minor(dev);
        register int unit;
  
        unit = minor(dev);
-       if (unit >= dz_cnt || dzpdma[unit].p_addr == 0) {
-               u.u_error = ENXIO;
-               return;
-       }
+       if (unit >= dz_cnt || dzpdma[unit].p_addr == 0)
+               return (ENXIO);
        tp = &dz_tty[unit];
        tp->t_addr = (caddr_t)&dzpdma[unit];
        tp->t_oproc = dzstart;
        tp = &dz_tty[unit];
        tp->t_addr = (caddr_t)&dzpdma[unit];
        tp->t_oproc = dzstart;
@@ -222,10 +220,8 @@ dzopen(dev, flag)
                tp->t_flags = IFLAGS;
                /* tp->t_state |= TS_HUPCLS; */
                dzparam(unit);
                tp->t_flags = IFLAGS;
                /* tp->t_state |= TS_HUPCLS; */
                dzparam(unit);
-       } else if (tp->t_state&TS_XCLUDE && u.u_uid != 0) {
-               u.u_error = EBUSY;
-               return;
-       }
+       } else if (tp->t_state&TS_XCLUDE && u.u_uid != 0)
+               return (EBUSY);
        (void) dzmctl(dev, DZ_ON, DMSET);
        (void) spl5();
        while ((tp->t_state & TS_CARR_ON) == 0) {
        (void) dzmctl(dev, DZ_ON, DMSET);
        (void) spl5();
        while ((tp->t_state & TS_CARR_ON) == 0) {
@@ -233,7 +229,7 @@ dzopen(dev, flag)
                sleep((caddr_t)&tp->t_rawq, TTIPRI);
        }
        (void) spl0();
                sleep((caddr_t)&tp->t_rawq, TTIPRI);
        }
        (void) spl0();
-       (*linesw[tp->t_line].l_open)(dev, tp);
+       return ((*linesw[tp->t_line].l_open)(dev, tp));
 }
  
 /*ARGSUSED*/
 }
  
 /*ARGSUSED*/
@@ -363,15 +359,19 @@ dzioctl(dev, cmd, data, flag)
        register int unit = minor(dev);
        register int dz = unit >> 3;
        register struct device *dzaddr;
        register int unit = minor(dev);
        register int dz = unit >> 3;
        register struct device *dzaddr;
+       int error;
  
        tp = &dz_tty[unit];
  
        tp = &dz_tty[unit];
-       cmd = (*linesw[tp->t_line].l_ioctl)(tp, cmd, data, flag);
-       if (cmd == 0)
-               return;
-       if (ttioctl(tp, cmd, data, flag)) {
+       error = (*linesw[tp->t_line].l_ioctl)(tp, cmd, data, flag);
+       if (error >= 0)
+               return (error);
+       error = ttioctl(tp, cmd, data, flag);
+       if (error >= 0) {
                if (cmd == TIOCSETP || cmd == TIOCSETN)
                        dzparam(unit);
                if (cmd == TIOCSETP || cmd == TIOCSETN)
                        dzparam(unit);
-       } else switch(cmd) {
+               return (error);
+       }
+       switch (cmd) {
 
        case TIOCSBRK:
                dzaddr = ((struct pdma *)(tp->t_addr))->p_addr;
 
        case TIOCSBRK:
                dzaddr = ((struct pdma *)(tp->t_addr))->p_addr;
@@ -414,8 +414,9 @@ dzioctl(dev, cmd, data, flag)
                break;
 
        default:
                break;
 
        default:
-               u.u_error = ENOTTY;
+               return (ENOTTY);
        }
        }
+       return (0);
 }
 
 dmtodz(bits)
 }
 
 dmtodz(bits)
index b9457de..f12ce25 100644 (file)
@@ -1,11 +1,11 @@
-/*     idc.c   4.6     82/10/10        */
+/*     idc.c   4.7     82/10/17        */
 
 #include "rb.h"
 #if NIDC > 0
 
 #include "rb.h"
 #if NIDC > 0
-int idcdebug = 0;
-#define printd if(idcdebug)printf
-int idctrb[1000];
-int *trp = idctrb;
+int    idcdebug = 0;
+#define        printd if(idcdebug)printf
+int    idctrb[1000];
+int    *trp = idctrb;
 #define        trace(a,b) {*trp++ = (int)a; *trp++ = (int)b; if(trp>&idctrb[998])trp=idctrb;}
 /*
  * IDC (RB730) disk driver
 #define        trace(a,b) {*trp++ = (int)a; *trp++ = (int)b; if(trp>&idctrb[998])trp=idctrb;}
 /*
  * IDC (RB730) disk driver
@@ -183,6 +183,17 @@ idcattach(ui)
        idccyl[ui->ui_unit].dar_dar = -1;
        ui->ui_flags = 0;
 }
        idccyl[ui->ui_unit].dar_dar = -1;
        ui->ui_flags = 0;
 }
+
+idcopen(dev)
+       dev_t dev;
+{
+       register int unit = minor(dev) >> 3;
+       register struct uba_device *ui;
+
+       if (unit >= NRB || (ui = idcdinfo[unit]) == 0 || ui->ui_alive == 0)
+               return (ENXIO);
+       return (0);
+}
  
 idcstrategy(bp)
        register struct buf *bp;
  
 idcstrategy(bp)
        register struct buf *bp;
index 83cb280..6f19598 100644 (file)
@@ -1,4 +1,4 @@
-/*     lp.c    4.29    82/10/10        */
+/*     lp.c    4.30    82/10/17        */
 
 #include "lp.h"
 #if NLP > 0
 
 #include "lp.h"
 #if NLP > 0
@@ -16,8 +16,6 @@
 #include "../h/systm.h"
 #include "../h/map.h"
 #include "../h/pte.h"
 #include "../h/systm.h"
 #include "../h/map.h"
 #include "../h/pte.h"
-#include "../h/ioctl.h"
-#include "../h/tty.h"
 
 #include "../vaxuba/ubavar.h"
 
 
 #include "../vaxuba/ubavar.h"
 
@@ -111,15 +109,11 @@ lpopen(dev, flag)
 
        if ((unit = LPUNIT(dev)) >= NLP ||
            (sc = &lp_softc[unit])->sc_state&OPEN ||
 
        if ((unit = LPUNIT(dev)) >= NLP ||
            (sc = &lp_softc[unit])->sc_state&OPEN ||
-           (ui = lpinfo[unit]) == 0 || ui->ui_alive == 0) {
-               u.u_error = ENXIO;
-               return;
-       }
+           (ui = lpinfo[unit]) == 0 || ui->ui_alive == 0)
+               return (ENXIO);
        lpaddr = (struct lpdevice *)ui->ui_addr;
        lpaddr = (struct lpdevice *)ui->ui_addr;
-       if (lpaddr->lpsr&ERROR) {
-               u.u_error = EIO;
-               return;
-       }
+       if (lpaddr->lpsr&ERROR)
+               return (EIO);
        sc->sc_state |= OPEN;
        sc->sc_inbuf = geteblk(512);
        sc->sc_flags = minor(dev) & 07;
        sc->sc_state |= OPEN;
        sc->sc_inbuf = geteblk(512);
        sc->sc_flags = minor(dev) & 07;
@@ -130,6 +124,7 @@ lpopen(dev, flag)
        }
        (void) spl0();
        lpcanon(dev, '\f');
        }
        (void) spl0();
        lpcanon(dev, '\f');
+       return (0);
 }
 
 /*ARGSUSED*/
 }
 
 /*ARGSUSED*/
index a402bb9..9b1ecb5 100644 (file)
@@ -1,4 +1,4 @@
-/*     lpa.c   4.7     82/10/10        */
+/*     lpa.c   4.8     82/10/17        */
 
 #include "lpa.h"
 #if NLPA > 0
 
 #include "lpa.h"
 #if NLPA > 0
@@ -199,10 +199,8 @@ lpaopen(dev, flag)
 
 TRACER("OPEN\n");
        if (unit >= NLPA || sc->sc_flag & OPEN || ui == 0 ||
 
 TRACER("OPEN\n");
        if (unit >= NLPA || sc->sc_flag & OPEN || ui == 0 ||
-           ui->ui_alive == 0) {
-               u.u_error = ENXIO;
-               return;
-       }
+           ui->ui_alive == 0)
+               return (ENXIO);
        (void) spl7();
        lpaaddr->lcim = RESET;
        lpaaddr->lcim = 0;
        (void) spl7();
        lpaaddr->lcim = RESET;
        lpaaddr->lcim = 0;
@@ -219,6 +217,7 @@ TRACER("OPEN\n");
        sc->sc_ubufn = -1;
        /* THIS SHOULD EVENTUALLY SPECIFY "REAL-TIME" */
        u.u_procp->p_nice = NICE;
        sc->sc_ubufn = -1;
        /* THIS SHOULD EVENTUALLY SPECIFY "REAL-TIME" */
        u.u_procp->p_nice = NICE;
+       return (0);
 }
 
 lpaclose(dev, flag)
 }
 
 lpaclose(dev, flag)
@@ -375,19 +374,8 @@ lpaioctl(dev, cmd, data, flag)
        } *iocb;
 
 TRACER("IOCTL IN\n");
        } *iocb;
 
 TRACER("IOCTL IN\n");
-       if (cmd != TIOCSETP) {
-TRACER("NOT TIOCSETP\n");
-               /* not valid */
-               u.u_error = ENXIO;
-               return;
-       }
-#ifndef NOMCODE
-       if ((sc->sc_flag & DMDT) == 0) {
-TRACER("NO DMDT\n");
-               u.u_error = ENXIO;
-               return;
-       }
-#endif
+       if (cmd != TIOCSETP || (sc->sc_flag & DMDT) == 0)
+               return (ENXIO);
        iocb = (struct iocb *)data;
        p = (short *) sc->sc_buffer->b_un.b_addr;       /* CLOCK START */
        *p++ = CLOCK | CLOCKA;                  /* mode */
        iocb = (struct iocb *)data;
        p = (short *) sc->sc_buffer->b_un.b_addr;       /* CLOCK START */
        *p++ = CLOCK | CLOCKA;                  /* mode */
@@ -412,17 +400,15 @@ TRACER("CLOCK STARTED\n");
        *p++ |= sc->sc_nbuf++ << 8;             /* into high portion of word */
                                        /* buffer addresses */
        if (useracc(sc->sc_ubuffer.b_un.b_addr = (caddr_t) iocb->baddr,
        *p++ |= sc->sc_nbuf++ << 8;             /* into high portion of word */
                                        /* buffer addresses */
        if (useracc(sc->sc_ubuffer.b_un.b_addr = (caddr_t) iocb->baddr,
-                   sc->sc_ubuffer.b_bcount = sc->sc_count * sc->sc_nbuf * 2,
-                   (i = (sc->sc_device)? B_READ : B_WRITE) ) == NULL) {
+           sc->sc_ubuffer.b_bcount = sc->sc_count * sc->sc_nbuf * 2,
+           (i = (sc->sc_device)? B_READ : B_WRITE) ) == NULL) {
 TRACER("USER BUFFER FAULT\n");
 TRACER("USER BUFFER FAULT\n");
-                       u.u_error = EFAULT;
-                       return;
+               return (EFAULT);
        }
        sc->sc_ubuffer.b_flags = B_PHYS | B_BUSY | i;
        sc->sc_ubuffer.b_proc = u.u_procp;
        u.u_procp->p_flag |= SPHYSIO;
        vslock(sc->sc_ubuffer.b_un.b_addr, sc->sc_ubuffer.b_bcount);
        }
        sc->sc_ubuffer.b_flags = B_PHYS | B_BUSY | i;
        sc->sc_ubuffer.b_proc = u.u_procp;
        u.u_procp->p_flag |= SPHYSIO;
        vslock(sc->sc_ubuffer.b_un.b_addr, sc->sc_ubuffer.b_bcount);
-/*     sc->sc_ubabuf = ubasetup(ui->ui_ubanum, &sc->sc_ubuffer, UBA_NEEDBDP);*/
        sc->sc_ubabuf = ubasetup(ui->ui_ubanum, &sc->sc_ubuffer, 0);
        v = sc->sc_ubabuf;
        for (i = 0; i < sc->sc_nbuf; i++) {
        sc->sc_ubabuf = ubasetup(ui->ui_ubanum, &sc->sc_ubuffer, 0);
        v = sc->sc_ubabuf;
        for (i = 0; i < sc->sc_nbuf; i++) {
@@ -448,6 +434,7 @@ TRACER("USER BUFFER FAULT\n");
        sc->sc_lbufnx = 0;
        sc->sc_flag |= STTY;
 TRACER("IOCTL OUT\n");
        sc->sc_lbufnx = 0;
        sc->sc_flag |= STTY;
 TRACER("IOCTL OUT\n");
+       return (0);
 }
 
 lparead(dev, uio)
 }
 
 lparead(dev, uio)
index b45866c..01b52a4 100644 (file)
@@ -1,4 +1,4 @@
-/*     ps.c    4.6     82/10/10        */
+/*     ps.c    4.7     82/10/17        */
 
 /*
  * Evans and Sutherland Picture System 2 driver
 
 /*
  * Evans and Sutherland Picture System 2 driver
@@ -117,8 +117,8 @@ psprobe(reg)
 psattach(ui)
        register struct uba_device *ui;
 {
 psattach(ui)
        register struct uba_device *ui;
 {
-}
 
 
+}
 
 psopen(dev)
        dev_t dev;
 
 psopen(dev)
        dev_t dev;
@@ -127,11 +127,9 @@ psopen(dev)
        register struct uba_device *ui;
        register int unit = PSUNIT(dev);
 
        register struct uba_device *ui;
        register int unit = PSUNIT(dev);
 
-       if(unit >= NPS || (psp = &ps[minor(dev)])->ps_open ||
-                       (ui = psdinfo[unit]) == 0 || ui->ui_alive == 0) {
-               u.u_error = ENXIO;
-               return;
-       }
+       if (unit >= NPS || (psp = &ps[minor(dev)])->ps_open ||
+           (ui = psdinfo[unit]) == 0 || ui->ui_alive == 0)
+               return (ENXIO);
        psp->ps_open = 1;
        psp->ps_uid = u.u_uid;
        psp->ps_strayintr = 0;
        psp->ps_open = 1;
        psp->ps_uid = u.u_uid;
        psp->ps_strayintr = 0;
@@ -145,6 +143,7 @@ psopen(dev)
        psp->ps_clock.ticked = 0;
        psp->ps_refresh.icnt = psp->ps_map.icnt = psp->ps_clock.icnt = 0;
        maptouser(ui->ui_addr);
        psp->ps_clock.ticked = 0;
        psp->ps_refresh.icnt = psp->ps_map.icnt = psp->ps_clock.icnt = 0;
        maptouser(ui->ui_addr);
+       return (0);
 }
 
 psclose(dev)
 }
 
 psclose(dev)
@@ -193,53 +192,39 @@ psioctl(dev, cmd, data, flag)
 
        case PSIOAUTOREFRESH:
                n = fuword(waddr++);
 
        case PSIOAUTOREFRESH:
                n = fuword(waddr++);
-               if(n == -1)
-                       u.u_error = EFAULT;
-               else if(n < 0 || n > MAXAUTOREFRESH)
-                       u.u_error = EINVAL;
-               else {
-                       for(i = 0; i < n; i++)
-                               if((arg = fuword(waddr++)) == -1) {
-                                       u.u_error = EFAULT;
-                                       break;
-                               }
-                               else
-                                       psp->ps_refresh.sraddrs[i] = arg;
-                       if(!u.u_error) {
-                               psp->ps_refresh.state = AUTO_RF;
-                               psp->ps_refresh.nsraddrs = n;
-                               psp->ps_refresh.srcntr = 0;
-                               psp->ps_refresh.mode = WAITING_MAP;
-                       }
+               if (n == -1)
+                       return (EFAULT);
+               if (n < 0 || n > MAXAUTOREFRESH)
+                       return (EINVAL);
+               for (i = 0; i < n; i++) {
+                       if ((arg = fuword(waddr++)) == -1)
+                               return (EFAULT);
+                       psp->ps_refresh.sraddrs[i] = arg;
                }
                }
+               psp->ps_refresh.state = AUTO_RF;
+               psp->ps_refresh.nsraddrs = n;
+               psp->ps_refresh.srcntr = 0;
+               psp->ps_refresh.mode = WAITING_MAP;
                break;
 
        case PSIOAUTOMAP:
                n = fuword(waddr++);
                break;
 
        case PSIOAUTOMAP:
                n = fuword(waddr++);
-               if(n == -1)
-                       u.u_error = EFAULT;
-               else if(n < 0 || n > MAXAUTOMAP)
-                       u.u_error = EINVAL;
-               else {
-                       for(i = 0; i < n; i++)
-                               if((arg = fuword(waddr++)) == -1) {
-                                       u.u_error = EFAULT;
-                                       break;
-                               }
-                               else
-                                       psp->ps_map.maddrs[i] = arg;
-                       if(!u.u_error)
-                               if((arg = fuword(waddr++)) == -1)
-                                       u.u_error = EFAULT;
-                               else
-                                       psp->ps_map.outputstart = arg;
-                       if(!u.u_error) {
-                               psp->ps_map.state = AUTO_MAP;
-                               psp->ps_map.nmaddrs = n;
-                               psp->ps_map.mcntr = 0;
-                               psp->ps_map.mode = WAITING_START;
-                       }
+               if (n == -1)
+                       return (EFAULT);
+               if (n < 0 || n > MAXAUTOMAP)
+                       return (EINVAL);
+               for (i = 0; i < n; i++) {
+                       if ((arg = fuword(waddr++)) == -1)
+                               return (EFAULT);
+                       psp->ps_map.maddrs[i] = arg;
                }
                }
+               if ((arg = fuword(waddr++)) == -1)
+                       return (EFAULT);
+               psp->ps_map.outputstart = arg;
+               psp->ps_map.state = AUTO_MAP;
+               psp->ps_map.nmaddrs = n;
+               psp->ps_map.mcntr = 0;
+               psp->ps_map.mode = WAITING_START;
                break;
 
        case PSIOSINGLEREFRESH:
                break;
 
        case PSIOSINGLEREFRESH:
@@ -251,21 +236,18 @@ psioctl(dev, cmd, data, flag)
                break;
 
        case PSIODOUBLEBUFFER:
                break;
 
        case PSIODOUBLEBUFFER:
-               if((arg = fuword(waddr++)) == -1)
-                       u.u_error = EFAULT;
-               else {
-                       psp->ps_dbuffer.dbaddrs[0] = arg;
-                       if((arg = fuword(waddr++)) == -1)
-                               u.u_error = EFAULT;
-                       else if(arg <= 0 || arg > MAXDBSIZE)
-                               u.u_error = EINVAL;
-                       else {
-                               psp->ps_dbuffer.dbsize = arg;
-                               psp->ps_dbuffer.dbaddrs[1] =
-                                               psp->ps_dbuffer.dbaddrs[0]+arg;
-                               psp->ps_dbuffer.state = ON_DB;
-                               psp->ps_dbuffer.rbuffer = 0;
-                       }
+               if ((arg = fuword(waddr++)) == -1)
+                       return (EFAULT);
+               psp->ps_dbuffer.dbaddrs[0] = arg;
+               if ((arg = fuword(waddr++)) == -1)
+                       return (EFAULT);
+               if (arg <= 0 || arg > MAXDBSIZE)
+                       return (EINVAL);
+               psp->ps_dbuffer.dbsize = arg;
+               psp->ps_dbuffer.dbaddrs[1] =
+                   psp->ps_dbuffer.dbaddrs[0]+arg;
+               psp->ps_dbuffer.state = ON_DB;
+               psp->ps_dbuffer.rbuffer = 0;
                }
                break;
 
                }
                break;
 
@@ -274,37 +256,40 @@ psioctl(dev, cmd, data, flag)
                break;
 
        case PSIOWAITREFRESH:
                break;
 
        case PSIOWAITREFRESH:
-               if(psp->ps_refresh.mode != RUNNING_RF)  /* not running */
-                       return;                         /* dont wait */
+               if (psp->ps_refresh.mode != RUNNING_RF) /* not running */
+                       return (0);                             /* dont wait */
+               /* fall into ... */
 
        case PSSIOTOPREFRESH:
 
        case PSSIOTOPREFRESH:
-               if(cmd == PSSTOPREFRESH)
+               if (cmd == PSSTOPREFRESH)
                        psp->ps_refresh.stop = 1;
                spl5();
                psp->ps_refresh.waiting = 1;
                        psp->ps_refresh.stop = 1;
                spl5();
                psp->ps_refresh.waiting = 1;
-               while(psp->ps_refresh.waiting)
+               while (psp->ps_refresh.waiting)
                        sleep(&psp->ps_refresh.waiting, PSPRI);
                spl0();
                break;
 
        case PSIOWAITMAP:
                        sleep(&psp->ps_refresh.waiting, PSPRI);
                spl0();
                break;
 
        case PSIOWAITMAP:
-               if(psp->ps_map.mode != RUNNING_MAP)     /* not running */
-                       return;                         /* dont wait */
+               if (psp->ps_map.mode != RUNNING_MAP)    /* not running */
+                       return (0);                             /* dont wait */
+               /* fall into ... */
 
        case PSIOSTOPMAP:
 
        case PSIOSTOPMAP:
-               if(cmd == PSSTOPMAP)
+               if (cmd == PSSTOPMAP)
                        psp->ps_map.stop = 1;
                spl5();
                psp->ps_map.waiting = 1;
                        psp->ps_map.stop = 1;
                spl5();
                psp->ps_map.waiting = 1;
-               while(psp->ps_map.waiting)
+               while (psp->ps_map.waiting)
                        sleep(&psp->ps_map.waiting, PSPRI);
                spl0();
                break;
 
        default:
                        sleep(&psp->ps_map.waiting, PSPRI);
                spl0();
                break;
 
        default:
-               u.u_error = ENOTTY;     /* Not a legal ioctl cmd. */
+               return (ENOTTY);
                break;
        }
                break;
        }
+       return (0);
 }
 
 #define SAVEPSADDR() {register short int i, x;x=spl6();i=psaddr->ps_addr;\
 }
 
 #define SAVEPSADDR() {register short int i, x;x=spl6();i=psaddr->ps_addr;\
@@ -322,13 +307,13 @@ psclockintr(dev)
        register struct ps *psp = &ps[PSUNIT(dev)];
        int savepsaddr;
 
        register struct ps *psp = &ps[PSUNIT(dev)];
        int savepsaddr;
 
-       if(!psp->ps_open)
+       if (!psp->ps_open)
                return;
        psp->ps_clock.icnt++;
        SAVEPSADDR();
 #ifndef EXTERNAL_SYNC
                return;
        psp->ps_clock.icnt++;
        SAVEPSADDR();
 #ifndef EXTERNAL_SYNC
-       if(psp->ps_refresh.state == AUTO_RF) {
-               if(psp->ps_refresh.mode == SYNCING_RF) {
+       if (psp->ps_refresh.state == AUTO_RF) {
+               if (psp->ps_refresh.mode == SYNCING_RF) {
                        psrfnext(psp, psaddr);
                } else {
                        psp->ps_clock.ticked++;
                        psrfnext(psp, psaddr);
                } else {
                        psp->ps_clock.ticked++;
@@ -353,7 +338,7 @@ pssystemintr(dev)
        short int request;
        register int savepsaddr, x;
 
        short int request;
        register int savepsaddr, x;
 
-       if(!psp->ps_open)
+       if (!psp->ps_open)
                return;
        SAVEPSADDR();
        PSWAIT();
                return;
        SAVEPSADDR();
        PSWAIT();
@@ -366,24 +351,24 @@ pssystemintr(dev)
        PSWAIT();
        psaddr->ps_data = request&(~(HALT_REQ|MOSTOP_REQ));   /* acknowledge */
 
        PSWAIT();
        psaddr->ps_data = request&(~(HALT_REQ|MOSTOP_REQ));   /* acknowledge */
 
-       if(request & (MOSTOP_REQ|HALT_REQ)) {   /* Map stopped */
+       if (request & (MOSTOP_REQ|HALT_REQ)) {  /* Map stopped */
                psp->ps_map.icnt++;
                psmapstop(psaddr);              /* kill it dead */
                psp->ps_map.icnt++;
                psmapstop(psaddr);              /* kill it dead */
-               if(psp->ps_map.waiting) {
+               if (psp->ps_map.waiting) {
                        psp->ps_map.waiting = 0;
                        wakeup(&psp->ps_map.waiting);
                        psp->ps_map.waiting = 0;
                        wakeup(&psp->ps_map.waiting);
-                       if(psp->ps_map.stop) {
+                       if (psp->ps_map.stop) {
                                psp->ps_map.stop = 0;
                                goto tryrf;
                        }
                }
                                psp->ps_map.stop = 0;
                                goto tryrf;
                        }
                }
-               if(psp->ps_map.state == AUTO_MAP)
-                       if(!psmapnext(psp, psaddr)) {
+               if (psp->ps_map.state == AUTO_MAP)
+                       if (!psmapnext(psp, psaddr)) {
                                psp->ps_map.mcntr = 0;
                                /* prepare for next round */
                                pssetmapbounds(psp, psaddr);
                                psp->ps_map.mcntr = 0;
                                /* prepare for next round */
                                pssetmapbounds(psp, psaddr);
-                               if(psp->ps_refresh.mode == WAITING_MAP) {
-                                       if(psp->ps_dbuffer.state == ON_DB)
+                               if (psp->ps_refresh.mode == WAITING_MAP) {
+                                       if (psp->ps_dbuffer.state == ON_DB)
                                                /* fill other db */
                                                psdbswitch(psp, psaddr);
                                        else
                                                /* fill other db */
                                                psdbswitch(psp, psaddr);
                                        else
@@ -394,22 +379,22 @@ pssystemintr(dev)
                        }
        }
 tryrf:
                        }
        }
 tryrf:
-       if(request & RFSTOP_REQ) {              /* Refresh stopped */
+       if (request & RFSTOP_REQ) {             /* Refresh stopped */
                psp->ps_refresh.icnt++;
                psrfstop(psaddr, psp);
                psp->ps_refresh.icnt++;
                psrfstop(psaddr, psp);
-               if(psp->ps_refresh.waiting) {
+               if (psp->ps_refresh.waiting) {
                        psp->ps_refresh.waiting = 0;
                        wakeup(&psp->ps_refresh.waiting);
                        psp->ps_refresh.waiting = 0;
                        wakeup(&psp->ps_refresh.waiting);
-                       if(psp->ps_refresh.stop) {
+                       if (psp->ps_refresh.stop) {
                                psp->ps_refresh.stop = 0;
                                goto tryhit;
                        }
                }
                                psp->ps_refresh.stop = 0;
                                goto tryhit;
                        }
                }
-               if(psp->ps_refresh.state == AUTO_RF)
-                       if(!psrfnext(psp, psaddr)) {    /* at end of refresh cycle */
-                               if(psp->ps_map.state == AUTO_MAP && 
+               if (psp->ps_refresh.state == AUTO_RF)
+                       if (!psrfnext(psp, psaddr)) {   /* at end of refresh cycle */
+                               if (psp->ps_map.state == AUTO_MAP && 
                                                psp->ps_map.mode==WAITING_RF) {
                                                psp->ps_map.mode==WAITING_RF) {
-                                       if(psp->ps_dbuffer.state == ON_DB)
+                                       if (psp->ps_dbuffer.state == ON_DB)
                                                psdbswitch(psp, psaddr);
                                        else
                                                psmapnext(psp, psaddr);
                                                psdbswitch(psp, psaddr);
                                        else
                                                psmapnext(psp, psaddr);
@@ -418,7 +403,7 @@ tryrf:
 #ifdef EXTERNAL_SYNC
                                x = spl6();
 #endif
 #ifdef EXTERNAL_SYNC
                                x = spl6();
 #endif
-                               if(!psp->ps_clock.ticked ||
+                               if (!psp->ps_clock.ticked ||
                                                !psrfnext(psp, psaddr)) {
                                        psp->ps_refresh.mode = SYNCING_RF;
                                }
                                                !psrfnext(psp, psaddr)) {
                                        psp->ps_refresh.mode = SYNCING_RF;
                                }
@@ -430,10 +415,10 @@ tryrf:
                        }
        }
 tryhit:
                        }
        }
 tryhit:
-       if(request & HIT_REQ) {         /* Hit request */
+       if (request & HIT_REQ) {                /* Hit request */
                psp->ps_hit.icnt++;
        }
                psp->ps_hit.icnt++;
        }
-       if(request == 0)
+       if (request == 0)
                psp->ps_strayintr++;
        RESTORPSADDR();
 }
                psp->ps_strayintr++;
        RESTORPSADDR();
 }
@@ -443,10 +428,10 @@ psrfnext(psp, psaddr)
        register struct psdevice *psaddr;
 {
 
        register struct psdevice *psaddr;
 {
 
-       if(psp->ps_refresh.srcntr < psp->ps_refresh.nsraddrs)
+       if (psp->ps_refresh.srcntr < psp->ps_refresh.nsraddrs)
                psrfstart(psp->ps_refresh.sraddrs[psp->ps_refresh.srcntr++],
                                                psp, psaddr);
                psrfstart(psp->ps_refresh.sraddrs[psp->ps_refresh.srcntr++],
                                                psp, psaddr);
-       else if(psp->ps_refresh.srcntr == psp->ps_refresh.nsraddrs
+       else if (psp->ps_refresh.srcntr == psp->ps_refresh.nsraddrs
                                && psp->ps_dbuffer.state == ON_DB) {
                psrfstart(psp->ps_dbuffer.dbaddrs[psp->ps_dbuffer.rbuffer],
                                                psp, psaddr);
                                && psp->ps_dbuffer.state == ON_DB) {
                psrfstart(psp->ps_dbuffer.dbaddrs[psp->ps_dbuffer.rbuffer],
                                                psp, psaddr);
@@ -500,7 +485,7 @@ psmapnext(psp, psaddr)
        register struct psdevice *psaddr;
 {
 
        register struct psdevice *psaddr;
 {
 
-       if(psp->ps_map.mcntr < psp->ps_map.nmaddrs)
+       if (psp->ps_map.mcntr < psp->ps_map.nmaddrs)
                psmapstart(psp->ps_map.maddrs[psp->ps_map.mcntr++], psp, psaddr);
        else
                return(0);
                psmapstart(psp->ps_map.maddrs[psp->ps_map.mcntr++], psp, psaddr);
        else
                return(0);
@@ -516,7 +501,7 @@ pssetmapbounds(psp, psaddr)
        PSWAIT();
        psaddr->ps_addr = MAOL;
        PSWAIT();
        PSWAIT();
        psaddr->ps_addr = MAOL;
        PSWAIT();
-       if(psp->ps_dbuffer.state == ON_DB) {
+       if (psp->ps_dbuffer.state == ON_DB) {
                psaddr->ps_data = (start = psp->ps_dbuffer.dbaddrs[!psp->ps_dbuffer.rbuffer])
                                +psp->ps_dbuffer.dbsize-2;   /* 2 for a refresh halt command */
                PSWAIT();
                psaddr->ps_data = (start = psp->ps_dbuffer.dbaddrs[!psp->ps_dbuffer.rbuffer])
                                +psp->ps_dbuffer.dbsize-2;   /* 2 for a refresh halt command */
                PSWAIT();
@@ -590,10 +575,10 @@ psextsync(PC, PS) {
        register int savepsaddr;
 
 #ifdef EXTERNAL_SYNC
        register int savepsaddr;
 
 #ifdef EXTERNAL_SYNC
-       for(psp = ps, n = 0; n < NPS; psp++, n++) {
-               if(!psp->ps_open)
+       for (psp = ps, n = 0; n < NPS; psp++, n++) {
+               if (!psp->ps_open)
                        continue;
                        continue;
-               if(psp->ps_refresh.mode == SYNCING_RF) {
+               if (psp->ps_refresh.mode == SYNCING_RF) {
                        psaddr = (struct psdevice *) psdinfo[n]->ui_addr;
                        SAVEPSADDR();
                        psrfnext(psp, psaddr);
                        psaddr = (struct psdevice *) psdinfo[n]->ui_addr;
                        SAVEPSADDR();
                        psrfnext(psp, psaddr);
index bd8e9e0..0425cce 100644 (file)
@@ -1,4 +1,4 @@
-/*     rk.c    4.47    82/10/10        */
+/*     rk.c    4.48    82/10/17        */
 
 #include "rk.h"
 #if NHK > 0
 
 #include "rk.h"
 #if NHK > 0
@@ -166,6 +166,17 @@ rkattach(ui)
        ui->ui_flags = 0;
 }
  
        ui->ui_flags = 0;
 }
  
+rkopen(dev)
+       dev_t dev;
+{
+       register int unit = minor(dev) >> 3;
+       register struct uba_device *ui;
+
+       if (unit >= NRK || (ui = rkdinfo[unit]) == 0 || ui->ui_alive == 0)
+               return (ENXIO);
+       return (0);
+}
+
 rkstrategy(bp)
        register struct buf *bp;
 {
 rkstrategy(bp)
        register struct buf *bp;
 {
index 8f03148..ef92cb4 100644 (file)
@@ -1,4 +1,4 @@
-/*     tm.c    4.55    82/10/10        */
+/*     tm.c    4.56    82/10/17        */
 
 #include "te.h"
 #include "ts.h"
 
 #include "te.h"
 #include "ts.h"
@@ -196,10 +196,8 @@ tmopen(dev, flag)
 
        teunit = TEUNIT(dev);
        if (teunit>=NTE || (sc = &te_softc[teunit])->sc_openf ||
 
        teunit = TEUNIT(dev);
        if (teunit>=NTE || (sc = &te_softc[teunit])->sc_openf ||
-           (ui = tedinfo[teunit]) == 0 || ui->ui_alive == 0) {
-               u.u_error = ENXIO;
-               return;
-       }
+           (ui = tedinfo[teunit]) == 0 || ui->ui_alive == 0)
+               return (ENXIO);
        olddens = sc->sc_dens;
        dens = TM_IE | TM_GO | (ui->ui_slave << 8);
        if ((minor(dev) & T_1600BPI) == 0)
        olddens = sc->sc_dens;
        dens = TM_IE | TM_GO | (ui->ui_slave << 8);
        if ((minor(dev) & T_1600BPI) == 0)
@@ -214,19 +212,16 @@ get:
        sc->sc_dens = olddens;
        if ((sc->sc_erreg&(TMER_SELR|TMER_TUR)) != (TMER_SELR|TMER_TUR)) {
                uprintf("te%d: not online\n", teunit);
        sc->sc_dens = olddens;
        if ((sc->sc_erreg&(TMER_SELR|TMER_TUR)) != (TMER_SELR|TMER_TUR)) {
                uprintf("te%d: not online\n", teunit);
-               u.u_error = EIO;
-               return;
+               return (EIO);
        }
        if ((flag&FWRITE) && (sc->sc_erreg&TMER_WRL)) {
                uprintf("te%d: no write ring\n", teunit);
        }
        if ((flag&FWRITE) && (sc->sc_erreg&TMER_WRL)) {
                uprintf("te%d: no write ring\n", teunit);
-               u.u_error = EIO;
-               return;
+               return (EIO);
        }
        if ((sc->sc_erreg&TMER_BOT) == 0 && (flag&FWRITE) &&
            dens != sc->sc_dens) {
                uprintf("te%d: can't change density in mid-tape\n", teunit);
        }
        if ((sc->sc_erreg&TMER_BOT) == 0 && (flag&FWRITE) &&
            dens != sc->sc_dens) {
                uprintf("te%d: can't change density in mid-tape\n", teunit);
-               u.u_error = EIO;
-               return;
+               return (EIO);
        }
        sc->sc_openf = 1;
        sc->sc_blkno = (daddr_t)0;
        }
        sc->sc_openf = 1;
        sc->sc_blkno = (daddr_t)0;
@@ -240,6 +235,7 @@ get:
                timeout(tmtimer, (caddr_t)dev, 5*hz);
        }
        splx(s);
                timeout(tmtimer, (caddr_t)dev, 5*hz);
        }
        splx(s);
+       return (0);
 }
 
 /*
 }
 
 /*
@@ -848,7 +844,7 @@ tmioctl(dev, cmd, data, flag)
 
        case MTIOCTOP:  /* tape operation */
                mtop = (struct mtop *)data;
 
        case MTIOCTOP:  /* tape operation */
                mtop = (struct mtop *)data;
-               switch(mtop->mt_op) {
+               switch (mtop->mt_op) {
 
                case MTWEOF:
                        callcount = mtop->mt_count;
 
                case MTWEOF:
                        callcount = mtop->mt_count;
@@ -871,25 +867,20 @@ tmioctl(dev, cmd, data, flag)
                        break;
 
                default:
                        break;
 
                default:
-                       u.u_error = ENXIO;
-                       return;
-               }
-               if (callcount <= 0 || fcount <= 0) {
-                       u.u_error = ENXIO;
-                       return;
+                       return (ENXIO);
                }
                }
+               if (callcount <= 0 || fcount <= 0)
+                       return (EINVAL);
                while (--callcount >= 0) {
                        tmcommand(dev, tmops[mtop->mt_op], fcount);
                        if ((mtop->mt_op == MTFSR || mtop->mt_op == MTBSR) &&
                while (--callcount >= 0) {
                        tmcommand(dev, tmops[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_erreg&TMER_BOT)
                                break;
                }
                        if ((bp->b_flags&B_ERROR) || sc->sc_erreg&TMER_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;
@@ -897,11 +888,12 @@ tmioctl(dev, cmd, data, flag)
                mtget->mt_erreg = sc->sc_erreg;
                mtget->mt_resid = sc->sc_resid;
                mtget->mt_type = MT_ISTM;
                mtget->mt_erreg = sc->sc_erreg;
                mtget->mt_resid = sc->sc_resid;
                mtget->mt_type = MT_ISTM;
-               return;
+               break;
 
        default:
 
        default:
-               u.u_error = ENXIO;
+               return (ENXIO);
        }
        }
+       return (0);
 }
 
 #define        DBSIZE  20
 }
 
 #define        DBSIZE  20
index 03159bf..4dea820 100644 (file)
@@ -1,4 +1,4 @@
-/*     ts.c    4.30    82/10/10        */
+/*     ts.c    4.31    82/10/17        */
 
 #include "ts.h"
 #if NTS > 0
 
 #include "ts.h"
 #if NTS > 0
@@ -171,29 +171,24 @@ tsopen(dev, flag)
 
        tsunit = TSUNIT(dev);
        if (tsunit>=NTS || (sc = &ts_softc[tsunit])->sc_openf ||
 
        tsunit = TSUNIT(dev);
        if (tsunit>=NTS || (sc = &ts_softc[tsunit])->sc_openf ||
-           (ui = tsdinfo[tsunit]) == 0 || ui->ui_alive == 0) {
-               u.u_error = ENXIO;
-               return;
-       }
-       if (tsinit(tsunit)) {
-               u.u_error = ENXIO;
-               return;
-       }
+           (ui = tsdinfo[tsunit]) == 0 || ui->ui_alive == 0)
+               return (ENXIO);
+       if (tsinit(tsunit))
+               return (ENXIO);
        tscommand(dev, TS_SENSE, 1);
        if ((sc->sc_sts.s_xs0&TS_ONL) == 0) {
                uprintf("ts%d: not online\n", tsunit);
        tscommand(dev, TS_SENSE, 1);
        if ((sc->sc_sts.s_xs0&TS_ONL) == 0) {
                uprintf("ts%d: not online\n", tsunit);
-               u.u_error = EIO;
-               return;
+               return (EIO);
        }
        if ((flag&(FREAD|FWRITE)) == FWRITE && (sc->sc_sts.s_xs0&TS_WLK)) {
                uprintf("ts%d: no write ring\n", tsunit);
        }
        if ((flag&(FREAD|FWRITE)) == FWRITE && (sc->sc_sts.s_xs0&TS_WLK)) {
                uprintf("ts%d: no write ring\n", tsunit);
-               u.u_error = EIO;
-               return;
+               return (EIO);
        }
        sc->sc_openf = 1;
        sc->sc_blkno = (daddr_t)0;
        sc->sc_nxrec = INF;
        sc->sc_lastiow = 0;
        }
        sc->sc_openf = 1;
        sc->sc_blkno = (daddr_t)0;
        sc->sc_nxrec = INF;
        sc->sc_lastiow = 0;
+       return (0);
 }
 
 /*
 }
 
 /*
@@ -793,7 +788,7 @@ tsioctl(dev, cmd, data, flag)
 
        case MTIOCTOP:  /* tape operation */
                mtop = (struct mtop *)data;
 
        case MTIOCTOP:  /* tape operation */
                mtop = (struct mtop *)data;
-               switch(mtop->mt_op) {
+               switch (mtop->mt_op) {
 
                case MTWEOF:
                        callcount = mtop->mt_count;
 
                case MTWEOF:
                        callcount = mtop->mt_count;
@@ -812,25 +807,20 @@ tsioctl(dev, cmd, data, flag)
                        break;
 
                default:
                        break;
 
                default:
-                       u.u_error = ENXIO;
-                       return;
-               }
-               if (callcount <= 0 || fcount <= 0) {
-                       u.u_error = ENXIO;
-                       return;
+                       return (ENXIO);
                }
                }
+               if (callcount <= 0 || fcount <= 0)
+                       return (EINVAL);
                while (--callcount >= 0) {
                        tscommand(dev, tsops[mtop->mt_op], fcount);
                        if ((mtop->mt_op == MTFSR || mtop->mt_op == MTBSR) &&
                            bp->b_resid) {
                while (--callcount >= 0) {
                        tscommand(dev, tsops[mtop->mt_op], fcount);
                        if ((mtop->mt_op == MTFSR || mtop->mt_op == MTBSR) &&
                            bp->b_resid) {
-                               u.u_error = EIO;
-                               break;
-                       }
+                               return (EIO);
                        if ((bp->b_flags&B_ERROR) || sc->sc_sts.s_xs0&TS_BOT)
                                break;
                }
                        if ((bp->b_flags&B_ERROR) || sc->sc_sts.s_xs0&TS_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;
@@ -838,11 +828,12 @@ tsioctl(dev, cmd, data, flag)
                mtget->mt_erreg = sc->sc_sts.s_xs0;
                mtget->mt_resid = sc->sc_resid;
                mtget->mt_type = MT_ISTS;
                mtget->mt_erreg = sc->sc_sts.s_xs0;
                mtget->mt_resid = sc->sc_resid;
                mtget->mt_type = MT_ISTS;
-               return;
+               break;
 
        default:
 
        default:
-               u.u_error = ENXIO;
+               return (ENXIO);
        }
        }
+       return (0);
 }
 
 #define        DBSIZE  20
 }
 
 #define        DBSIZE  20
index b923f3f..9f66c11 100644 (file)
@@ -1,4 +1,4 @@
-/*     uba.c   4.50    82/10/10        */
+/*     uba.c   4.51    82/10/17        */
 
 #include "../h/param.h"
 #include "../h/systm.h"
 
 #include "../h/param.h"
 #include "../h/systm.h"
index 378d651..9a0d298 100644 (file)
@@ -1,4 +1,4 @@
-/*     uda.c   4.10    82/10/10        */
+/*     uda.c   4.11    82/10/17        */
 
 #include "ra.h"
 #if NUDA > 0
 
 #include "ra.h"
 #if NUDA > 0
@@ -168,10 +168,8 @@ udopen(dev, flag)
        flag = flag;
 #endif
        unit = minor(dev) >> 3;
        flag = flag;
 #endif
        unit = minor(dev) >> 3;
-       if (unit >= NRA || (ui = uddinfo[unit]) == 0 || ui->ui_alive == 0) {
-               u.u_error = ENXIO;
-               return;
-       }
+       if (unit >= NRA || (ui = uddinfo[unit]) == 0 || ui->ui_alive == 0)
+               return (ENXIO);
        sc = &uda_softc[ui->ui_ctlr];
        s = spl5();
        if (sc->sc_state != S_RUN) {
        sc = &uda_softc[ui->ui_ctlr];
        s = spl5();
        if (sc->sc_state != S_RUN) {
@@ -179,14 +177,13 @@ udopen(dev, flag)
                        udinit(ui->ui_ctlr);
                /* wait for initialization to complete */
                sleep((caddr_t)ui->ui_mi, 0);
                        udinit(ui->ui_ctlr);
                /* wait for initialization to complete */
                sleep((caddr_t)ui->ui_mi, 0);
-               if (sc->sc_state != S_RUN) {
-                       u.u_error = EIO;
-                       return;
-               }
+               if (sc->sc_state != S_RUN)
+                       return (EIO);
        }
        splx(s);
        /* SHOULD PROBABLY FORCE AN ONLINE ATTEMPT
           TO SEE IF DISK IS REALLY THERE */
        }
        splx(s);
        /* SHOULD PROBABLY FORCE AN ONLINE ATTEMPT
           TO SEE IF DISK IS REALLY THERE */
+       return (0);
 }
 
 /*
 }
 
 /*
@@ -839,7 +836,7 @@ udreset(uban)
                }
                for (bp = udwtab[d].av_forw; bp != &udwtab[d]; bp = nbp) {
                        nbp = bp->av_forw;
                }
                for (bp = udwtab[d].av_forw; bp != &udwtab[d]; bp = nbp) {
                        nbp = bp->av_forw;
-                       ubarelse(uban, (int *)&bp->b_ubinfo);
+                       bp->b_ubinfo = 0;
                        /*
                         * Link the buffer onto the drive queue
                         */
                        /*
                         * Link the buffer onto the drive queue
                         */
index f089024..2c74d91 100644 (file)
@@ -1,4 +1,4 @@
-/*     ut.c    4.19    82/10/10        */
+/*     ut.c    4.20    82/10/17        */
 
 #include "tj.h"
 #if NUT > 0
 
 #include "tj.h"
 #if NUT > 0
@@ -127,13 +127,12 @@ utopen(dev, flag)
        register int s;
 
        if (tjunit >= NTJ || (sc = &tj_softc[tjunit])->sc_openf ||
        register int s;
 
        if (tjunit >= NTJ || (sc = &tj_softc[tjunit])->sc_openf ||
-           (ui = tjdinfo[tjunit]) == 0 || ui->ui_alive == 0) {
-               u.u_error = ENXIO;
-               return;
-       }
+           (ui = tjdinfo[tjunit]) == 0 || ui->ui_alive == 0)
+               return (ENXIO);
        olddens = sc->sc_dens;
        olddens = sc->sc_dens;
-       dens = sc->sc_dens = utdens[(minor(dev)&(T_1600BPI|T_6250BPI))>>3]|
-                               PDP11FMT|(ui->ui_slave&07);
+       dens = sc->sc_dens =
+           utdens[(minor(dev)&(T_1600BPI|T_6250BPI))>>3]|
+             PDP11FMT|(ui->ui_slave&07);
 get:
        utcommand(dev, UT_SENSE, 1);
        if (sc->sc_dsreg&UTDS_PIP) {
 get:
        utcommand(dev, UT_SENSE, 1);
        if (sc->sc_dsreg&UTDS_PIP) {
@@ -143,19 +142,16 @@ get:
        sc->sc_dens = olddens;
        if ((sc->sc_dsreg&UTDS_MOL) == 0) {
                uprintf("tj%d: not online\n", tjunit);
        sc->sc_dens = olddens;
        if ((sc->sc_dsreg&UTDS_MOL) == 0) {
                uprintf("tj%d: not online\n", tjunit);
-               u.u_error = EIO;
-               return;
+               return (EIO);
        }
        if ((flag&FWRITE) && (sc->sc_dsreg&UTDS_WRL)) {
                uprintf("tj%d: no write ring\n", tjunit);
        }
        if ((flag&FWRITE) && (sc->sc_dsreg&UTDS_WRL)) {
                uprintf("tj%d: no write ring\n", tjunit);
-               u.u_error = EIO;
-               return;
+               return (EIO);
        }
        if ((sc->sc_dsreg&UTDS_BOT) == 0 && (flag&FWRITE) &&
            dens != sc->sc_dens) {
                uprintf("tj%d: can't change density in mid-tape\n", tjunit);
        }
        if ((sc->sc_dsreg&UTDS_BOT) == 0 && (flag&FWRITE) &&
            dens != sc->sc_dens) {
                uprintf("tj%d: can't change density in mid-tape\n", tjunit);
-               u.u_error = EIO;
-               return;
+               return (EIO);
        }
        sc->sc_openf = 1;
        sc->sc_blkno = (daddr_t)0;
        }
        sc->sc_openf = 1;
        sc->sc_blkno = (daddr_t)0;
@@ -173,6 +169,7 @@ get:
                timeout(uttimer, (caddr_t)dev, 5*hz);
        }
        splx(s);
                timeout(uttimer, (caddr_t)dev, 5*hz);
        }
        splx(s);
+       return (0);
 }
 
 utclose(dev, flag)
 }
 
 utclose(dev, flag)
@@ -732,26 +729,21 @@ utioctl(dev, cmd, data, flag)
                        break;
 
                default:
                        break;
 
                default:
-                       u.u_error = ENXIO;
-                       return;
-               }
-               if (callcount <= 0 || fcount <= 0) {
-                       u.u_error = ENXIO;
-                       return;
+                       return (ENXIO);
                }
                }
+               if (callcount <= 0 || fcount <= 0)
+                       return (EINVAL);
                while (--callcount >= 0) {
                        utcommand(dev, utops[mtop->mt_op], fcount);
                        /* note this depends on the mtop values */
                        if ((mtop->mt_op >= MTFSF || mtop->mt_op <= MTBSR) &&
                            bp->b_resid) {
                while (--callcount >= 0) {
                        utcommand(dev, utops[mtop->mt_op], fcount);
                        /* note this depends on the mtop values */
                        if ((mtop->mt_op >= MTFSF || mtop->mt_op <= MTBSR) &&
                            bp->b_resid) {
-                               u.u_error = EIO;
-                               break;
-                       }
+                               return (EIO);
                        if ((bp->b_flags&B_ERROR) || (sc->sc_dsreg&UTDS_BOT))
                                break;
                }
                        if ((bp->b_flags&B_ERROR) || (sc->sc_dsreg&UTDS_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;
@@ -759,11 +751,12 @@ utioctl(dev, cmd, data, flag)
                mtget->mt_erreg = sc->sc_erreg;
                mtget->mt_resid = sc->sc_resid;
                mtget->mt_type = MT_ISUT;
                mtget->mt_erreg = sc->sc_erreg;
                mtget->mt_resid = sc->sc_resid;
                mtget->mt_type = MT_ISUT;
-               return;
+               break;
 
        default:
 
        default:
-               u.u_error = ENXIO;
+               return (ENXIO);
        }
        }
+       return (0);
 }
 
 utreset(uban)
 }
 
 utreset(uban)
index 692ddad..2968556 100644 (file)
@@ -1,4 +1,4 @@
-/*     vp.c    4.20    82/10/10        */
+/*     vp.c    4.21    82/10/17        */
 
 #include "vp.h"
 #if NVP > 0
 
 #include "vp.h"
 #if NVP > 0
@@ -123,10 +123,8 @@ vpopen(dev)
 
        if (VPUNIT(dev) >= NVP ||
            ((sc = &vp_softc[minor(dev)])->sc_state&VPSC_OPEN) ||
 
        if (VPUNIT(dev) >= NVP ||
            ((sc = &vp_softc[minor(dev)])->sc_state&VPSC_OPEN) ||
-           (ui = vpdinfo[VPUNIT(dev)]) == 0 || ui->ui_alive == 0) {
-               u.u_error = ENXIO;
-               return;
-       }
+           (ui = vpdinfo[VPUNIT(dev)]) == 0 || ui->ui_alive == 0)
+               return (ENXIO);
        vpaddr = (struct vpdevice *)ui->ui_addr;
        sc->sc_state = VPSC_OPEN|VPSC_PRINT | VP_CLRCOM|VP_RESET;
        sc->sc_count = 0;
        vpaddr = (struct vpdevice *)ui->ui_addr;
        sc->sc_state = VPSC_OPEN|VPSC_PRINT | VP_CLRCOM|VP_RESET;
        sc->sc_count = 0;
@@ -136,12 +134,12 @@ vpopen(dev)
                (void) spl4();
                if (vpwait(dev)) {
                        vpclose(dev);
                (void) spl4();
                if (vpwait(dev)) {
                        vpclose(dev);
-                       u.u_error = EIO;
-                       return;
+                       return (EIO);
                }
                vpstart(dev);
                (void) spl0();
        }
                }
                vpstart(dev);
                (void) spl0();
        }
+       return (0);
 }
 
 vpstrategy(bp)
 }
 
 vpstrategy(bp)
@@ -260,21 +258,18 @@ vpioctl(dev, cmd, addr, flag)
 
        case VGETSTATE:
                (void) suword(addr, sc->sc_state);
 
        case VGETSTATE:
                (void) suword(addr, sc->sc_state);
-               return;
+               break;
 
        case VSETSTATE:
                m = fuword(addr);
 
        case VSETSTATE:
                m = fuword(addr);
-               if (m == -1) {
-                       u.u_error = EFAULT;
-                       return;
-               }
+               if (m == -1)
+                       return (EFAULT);
                sc->sc_state =
                    (sc->sc_state & ~VPSC_MODE) | (m&(VPSC_MODE|VPSC_CMNDS));
                break;
 
        default:
                sc->sc_state =
                    (sc->sc_state & ~VPSC_MODE) | (m&(VPSC_MODE|VPSC_CMNDS));
                break;
 
        default:
-               u.u_error = ENOTTY;
-               return;
+               return (ENOTTY);
        }
        (void) spl4();
        (void) vpwait(dev);
        }
        (void) spl4();
        (void) vpwait(dev);
@@ -288,6 +283,7 @@ vpioctl(dev, cmd, addr, flag)
                vpstart(dev);
        }
        (void) spl0();
                vpstart(dev);
        }
        (void) spl0();
+       return (0);
 }
 
 vptimo(dev)
 }
 
 vptimo(dev)
@@ -338,10 +334,7 @@ vpreset(uban)
                vpaddr->prcsr = VP_IENABLE|VP_DTCINTR;
                if ((sc->sc_state & VPSC_BUSY) == 0)
                        continue;
                vpaddr->prcsr = VP_IENABLE|VP_DTCINTR;
                if ((sc->sc_state & VPSC_BUSY) == 0)
                        continue;
-               if (sc->sc_ubinfo) {
-                       printf("<%d>", (sc->sc_ubinfo>>28)&0xf);
-                       ubarelse(ui->ui_ubanum, &sc->sc_ubinfo);
-               }
+               sc->sc_ubinfo = 0;
                sc->sc_count = sc->sc_bp->b_bcount;
                vpstart(sc->sc_bp->b_dev);
        }
                sc->sc_count = sc->sc_bp->b_bcount;
                vpstart(sc->sc_bp->b_dev);
        }