projects
/
unix-history
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
tags
|
clone url
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
l_write returns a value; pass it on
[unix-history]
/
usr
/
src
/
sys
/
vax
/
uba
/
vp.c
diff --git
a/usr/src/sys/vax/uba/vp.c
b/usr/src/sys/vax/uba/vp.c
index
8cafa49
..
692ddad
100644
(file)
--- a/
usr/src/sys/vax/uba/vp.c
+++ b/
usr/src/sys/vax/uba/vp.c
@@
-1,4
+1,4
@@
-/* vp.c 4.
9 81/04/02
*/
+/* vp.c 4.
20 82/10/10
*/
#include "vp.h"
#if NVP > 0
#include "vp.h"
#if NVP > 0
@@
-17,9
+17,11
@@
#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/ubavar.h"
-#include "../h/ubareg.h"
#include "../h/vcmd.h"
#include "../h/vcmd.h"
+#include "../h/uio.h"
+
+#include "../vaxuba/ubavar.h"
+#include "../vaxuba/ubareg.h"
unsigned minvpph();
unsigned minvpph();
@@
-83,19
+85,24
@@
vpprobe(reg)
register int br, cvec; /* value-result */
register struct vpdevice *vpaddr = (struct vpdevice *)(reg-010);
register int br, cvec; /* value-result */
register struct vpdevice *vpaddr = (struct vpdevice *)(reg-010);
+#ifdef lint
+ br = 0; cvec = br; br = cvec;
+ vpintr(0);
+#endif
vpaddr->prcsr = VP_IENABLE|VP_DTCINTR;
vpaddr->pbaddr = 0;
vpaddr->pbxaddr = 0;
vpaddr->prbcr = 1;
DELAY(10000);
vpaddr->prcsr = 0;
vpaddr->prcsr = VP_IENABLE|VP_DTCINTR;
vpaddr->pbaddr = 0;
vpaddr->pbxaddr = 0;
vpaddr->prbcr = 1;
DELAY(10000);
vpaddr->prcsr = 0;
-#if
def ERNIE
+#if
ERNIE || CAD || UCBVAX
/* UNTIL REWIRED, GET INTERRUPT AT 200 BUT WANT 174 */
if (cvec == 0200) {
printf("vp reset vec from 200 to 174\n");
cvec = 0174;
}
#endif
/* UNTIL REWIRED, GET INTERRUPT AT 200 BUT WANT 174 */
if (cvec == 0200) {
printf("vp reset vec from 200 to 174\n");
cvec = 0174;
}
#endif
+ return (sizeof (struct vpdevice));
}
/*ARGSUSED*/
}
/*ARGSUSED*/
@@
-165,9
+172,9
@@
brkout:
ubarelse(ui->ui_ubanum, &sc->sc_ubinfo);
sc->sc_state &= ~VPSC_BUSY;
sc->sc_bp = 0;
ubarelse(ui->ui_ubanum, &sc->sc_ubinfo);
sc->sc_state &= ~VPSC_BUSY;
sc->sc_bp = 0;
- iodone(bp);
if (e)
if (e)
- u.u_error = EIO;
+ bp->b_flags |= B_ERROR;
+ iodone(bp);
wakeup((caddr_t)sc);
}
wakeup((caddr_t)sc);
}
@@
-183,11
+190,15
@@
minvpph(bp)
}
/*ARGSUSED*/
}
/*ARGSUSED*/
-vpwrite(dev)
+vpwrite(dev
, uio
)
dev_t dev;
dev_t dev;
+ struct uio *uio;
{
{
- physio(vpstrategy, &rvpbuf[VPUNIT(dev)], dev, B_WRITE, minvpph);
+ if (VPUNIT(dev) >= NVP)
+ return (ENXIO);
+ return (physio(vpstrategy, &rvpbuf[VPUNIT(dev)], dev, B_WRITE,
+ minvpph, uio));
}
vpwait(dev)
}
vpwait(dev)
@@
-204,7
+215,7
@@
vpwait(dev)
break;
sleep((caddr_t)sc, VPPRI);
}
break;
sleep((caddr_t)sc, VPPRI);
}
- /* I
wish i could tell whether an error indicated an npr timeout
*/
+ /* I
WISH I COULD TELL WHETHER AN ERROR INDICATED AN NPR TIMEOUT
*/
return (e & VP_ERROR);
}
return (e & VP_ERROR);
}
@@
-335,4
+346,9
@@
vpreset(uban)
vpstart(sc->sc_bp->b_dev);
}
}
vpstart(sc->sc_bp->b_dev);
}
}
+
+vpselect()
+{
+ return (1);
+}
#endif
#endif