somehow a real old version snuck in
[unix-history] / usr / src / sys / vax / uba / uda.c
index dd52e05..46279b6 100644 (file)
@@ -1,4 +1,4 @@
-/*     uda.c   4.1     81/11/04        */
+/*     uda.c   4.3     82/03/14        */
 
 #include "ra.h"
 #if NUDA > 0
 
 #include "ra.h"
 #if NUDA > 0
@@ -112,7 +112,8 @@ udprobe(reg, ctlr)
        register struct uda_softc *sc = &uda_softc[ctlr];
 
 #ifdef lint
        register struct uda_softc *sc = &uda_softc[ctlr];
 
 #ifdef lint
-       br = 0; cvec = br; br = cvec;
+       br = 0; cvec = br; br = cvec; reg = reg;
+       udread(0); udwrite(0); udreset(0); udintr(0);
 #endif
        /* SHOULD CHECK THAT IT REALLY IS A UDA */
        br = 0x15;
 #endif
        /* SHOULD CHECK THAT IT REALLY IS A UDA */
        br = 0x15;
@@ -129,6 +130,9 @@ udslave(ui, reg)
         * INITIALIZED.  WE'LL FIND OUT WHEN WE FIRST
         * TRY TO ACCESS IT.
         */
         * INITIALIZED.  WE'LL FIND OUT WHEN WE FIRST
         * TRY TO ACCESS IT.
         */
+#ifdef lint
+       ui = ui; reg = reg;
+#endif
        return(1);
 }
 
        return(1);
 }
 
@@ -154,24 +158,29 @@ udopen(dev, flag)
        register int unit;
        register struct uba_device *ui;
        register struct uda_softc *sc;
        register int unit;
        register struct uba_device *ui;
        register struct uda_softc *sc;
+       int s;
 
 
+#ifdef lint
+       flag = flag;
+#endif
        unit = minor(dev) >> 3;
        if (unit >= NRA || (ui = uddinfo[unit]) == 0 || ui->ui_alive == 0) {
                u.u_error = ENXIO;
                return;
        }
        sc = &uda_softc[ui->ui_ctlr];
        unit = minor(dev) >> 3;
        if (unit >= NRA || (ui = uddinfo[unit]) == 0 || ui->ui_alive == 0) {
                u.u_error = ENXIO;
                return;
        }
        sc = &uda_softc[ui->ui_ctlr];
-       (void) spl5();
+       s = spl5();
        if (sc->sc_state != S_RUN) {
                if (sc->sc_state == S_IDLE)
                        udinit(ui->ui_ctlr);
        if (sc->sc_state != S_RUN) {
                if (sc->sc_state == S_IDLE)
                        udinit(ui->ui_ctlr);
-               sleep(ui->ui_mi, 0); /* wait for initialization to complete */
+               /* 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) {
                        u.u_error = EIO;
                        return;
                }
        }
-       (void) spl0();
+       splx(s);
        /* SHOULD PROBABLY FORCE AN ONLINE ATTEMPT
           TO SEE IF DISK IS REALLY THERE */
 }
        /* SHOULD PROBABLY FORCE AN ONLINE ATTEMPT
           TO SEE IF DISK IS REALLY THERE */
 }
@@ -229,6 +238,7 @@ udstrategy(bp)
        register int unit;
        int xunit = minor(bp->b_dev) & 07;
        daddr_t sz, maxsz;
        register int unit;
        int xunit = minor(bp->b_dev) & 07;
        daddr_t sz, maxsz;
+       int s;
 
        sz = (bp->b_bcount+511) >> 9;
        unit = dkunit(bp);
 
        sz = (bp->b_bcount+511) >> 9;
        unit = dkunit(bp);
@@ -243,7 +253,7 @@ udstrategy(bp)
        if (bp->b_blkno < 0 || bp->b_blkno+sz > maxsz ||
            ra_sizes[xunit].blkoff >= radsize[unit])
                goto bad;
        if (bp->b_blkno < 0 || bp->b_blkno+sz > maxsz ||
            ra_sizes[xunit].blkoff >= radsize[unit])
                goto bad;
-       (void) spl5();
+       s = spl5();
        /*
         * Link the buffer onto the drive queue
         */
        /*
         * Link the buffer onto the drive queue
         */
@@ -273,12 +283,13 @@ udstrategy(bp)
                                printf("uda: ubinfo %x\n",um->um_ubinfo);
                        else
                                um->um_ubinfo =
                                printf("uda: ubinfo %x\n",um->um_ubinfo);
                        else
                                um->um_ubinfo =
-                               uballoc(um->um_ubanum, 0, 0, UBA_NEEDBDP);
+                               uballoc(um->um_ubanum, (caddr_t)0, 0,
+                                       UBA_NEEDBDP);
                }
 #endif
                (void) udstart(um);
        }
                }
 #endif
                (void) udstart(um);
        }
-       (void) spl0();
+       splx(s);
        return;
 
 bad:
        return;
 
 bad:
@@ -313,7 +324,7 @@ loop:
                                ubarelse(um->um_ubanum, &um->um_ubinfo);
                }
 #endif
                                ubarelse(um->um_ubanum, &um->um_ubinfo);
                }
 #endif
-               return(0);
+               return (0);
        }
        if ((bp = dp->b_actf) == NULL) {
                /*
        }
        if ((bp = dp->b_actf) == NULL) {
                /*
@@ -332,7 +343,7 @@ loop:
                printf("udasa %o, state %d\n", udaddr->udasa&0xffff, sc->sc_state);
                udinit(um->um_ctlr);
                /* SHOULD REQUEUE OUTSTANDING REQUESTS, LIKE UDRESET */
                printf("udasa %o, state %d\n", udaddr->udasa&0xffff, sc->sc_state);
                udinit(um->um_ctlr);
                /* SHOULD REQUEUE OUTSTANDING REQUESTS, LIKE UDRESET */
-               return;
+               return (0);
        }
        ui = uddinfo[dkunit(bp)];
        /*
        }
        ui = uddinfo[dkunit(bp)];
        /*
@@ -340,9 +351,9 @@ loop:
         * until some outstanding commands complete.
         */
        if (sc->sc_credits < 2)
         * until some outstanding commands complete.
         */
        if (sc->sc_credits < 2)
-               return(0);
+               return (0);
        if ((mp = udgetcp(um)) == NULL)
        if ((mp = udgetcp(um)) == NULL)
-               return(0);
+               return (0);
        sc->sc_credits--;       /* committed to issuing a command */
        if (ui->ui_flags == 0) {        /* not online */
                mp->mscp_opcode = M_OP_ONLIN;
        sc->sc_credits--;       /* committed to issuing a command */
        if (ui->ui_flags == 0) {        /* not online */
                mp->mscp_opcode = M_OP_ONLIN;
@@ -440,7 +451,7 @@ udintr(d)
 #define        STEP1GOOD       (UDA_STEP2|UDA_IE|(NCMDL2<<3)|NRSPL2)
                if ((udaddr->udasa&(UDA_ERR|STEP1GOOD)) != STEP1GOOD) {
                        sc->sc_state = S_IDLE;
 #define        STEP1GOOD       (UDA_STEP2|UDA_IE|(NCMDL2<<3)|NRSPL2)
                if ((udaddr->udasa&(UDA_ERR|STEP1GOOD)) != STEP1GOOD) {
                        sc->sc_state = S_IDLE;
-                       wakeup(um);
+                       wakeup((caddr_t)um);
                        return;
                }
                udaddr->udasa = ((int)&sc->sc_uda->uda_ca.ca_ringbase)|
                        return;
                }
                udaddr->udasa = ((int)&sc->sc_uda->uda_ca.ca_ringbase)|
@@ -452,7 +463,7 @@ udintr(d)
 #define        STEP2GOOD       (UDA_STEP3|UDA_IE|(sc->sc_ivec/4))
                if ((udaddr->udasa&(UDA_ERR|STEP2GOOD)) != STEP2GOOD) {
                        sc->sc_state = S_IDLE;
 #define        STEP2GOOD       (UDA_STEP3|UDA_IE|(sc->sc_ivec/4))
                if ((udaddr->udasa&(UDA_ERR|STEP2GOOD)) != STEP2GOOD) {
                        sc->sc_state = S_IDLE;
-                       wakeup(um);
+                       wakeup((caddr_t)um);
                        return;
                }
                udaddr->udasa = ((int)&sc->sc_uda->uda_ca.ca_ringbase)>>16;
                        return;
                }
                udaddr->udasa = ((int)&sc->sc_uda->uda_ca.ca_ringbase)>>16;
@@ -463,7 +474,7 @@ udintr(d)
 #define        STEP3GOOD       UDA_STEP4
                if ((udaddr->udasa&(UDA_ERR|STEP3GOOD)) != STEP3GOOD) {
                        sc->sc_state = S_IDLE;
 #define        STEP3GOOD       UDA_STEP4
                if ((udaddr->udasa&(UDA_ERR|STEP3GOOD)) != STEP3GOOD) {
                        sc->sc_state = S_IDLE;
-                       wakeup(um);
+                       wakeup((caddr_t)um);
                        return;
                }
                udaddr->udasa = UDA_GO;
                        return;
                }
                udaddr->udasa = UDA_GO;
@@ -491,7 +502,7 @@ udintr(d)
                sc->sc_lastrsp = 0;
                if ((mp = udgetcp(um)) == NULL) {
                        sc->sc_state = S_IDLE;
                sc->sc_lastrsp = 0;
                if ((mp = udgetcp(um)) == NULL) {
                        sc->sc_state = S_IDLE;
-                       wakeup(um);
+                       wakeup((caddr_t)um);
                        return;
                }
                mp->mscp_opcode = M_OP_STCON;
                        return;
                }
                mp->mscp_opcode = M_OP_STCON;
@@ -513,7 +524,7 @@ udintr(d)
        if (udaddr->udasa&UDA_ERR) {
                printf("uda%d: fatal error (%o)\n", d, udaddr->udasa&0xffff);
                udaddr->udaip = 0;
        if (udaddr->udasa&UDA_ERR) {
                printf("uda%d: fatal error (%o)\n", d, udaddr->udasa&0xffff);
                udaddr->udaip = 0;
-               wakeup(um);
+               wakeup((caddr_t)um);
        }
 
        /*
        }
 
        /*
@@ -559,7 +570,7 @@ udintr(d)
                printd("uda: command ring transition\n");
                ud->uda_ca.ca_cmdint = 0;
        }
                printd("uda: command ring transition\n");
                ud->uda_ca.ca_cmdint = 0;
        }
-       udstart(um);
+       (void) udstart(um);
 }
 
 /*
 }
 
 /*
@@ -601,7 +612,7 @@ udrsp(um, ud, sc, i)
                else
                        sc->sc_state = S_IDLE;
                um->um_tab.b_active = 0;
                else
                        sc->sc_state = S_IDLE;
                um->um_tab.b_active = 0;
-               wakeup(um);
+               wakeup((caddr_t)um);
                break;
 
        case M_OP_ONLIN|M_OP_END:
                break;
 
        case M_OP_ONLIN|M_OP_END:
@@ -639,7 +650,7 @@ udrsp(um, ud, sc, i)
        case M_OP_READ|M_OP_END:
        case M_OP_WRITE|M_OP_END:
                bp = (struct buf *)mp->mscp_cmdref;
        case M_OP_READ|M_OP_END:
        case M_OP_WRITE|M_OP_END:
                bp = (struct buf *)mp->mscp_cmdref;
-               ubarelse(um->um_ubanum, &bp->b_resid);
+               ubarelse(um->um_ubanum, (int *)&bp->b_resid);
                /*
                 * Unlink buffer from I/O wait queue.
                 */
                /*
                 * Unlink buffer from I/O wait queue.
                 */
@@ -816,7 +827,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, &bp->b_ubinfo);
+                       ubarelse(uban, (int *)&bp->b_ubinfo);
                        /*
                         * Link the buffer onto the drive queue
                         */
                        /*
                         * Link the buffer onto the drive queue
                         */