summary |
tags |
clone url |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
2e9f599)
SCCS-vsn: sys/vax/uba/dmf.c 4.11
SCCS-vsn: sys/vax/uba/dn.c 4.10
SCCS-vsn: sys/vax/uba/idc.c 4.8
SCCS-vsn: sys/vax/uba/rk.c 4.49
SCCS-vsn: sys/vax/uba/tm.c 4.57
SCCS-vsn: sys/vax/uba/ts.c 4.32
SCCS-vsn: sys/vax/uba/uba.c 4.52
SCCS-vsn: sys/vax/uba/uda.c 4.12
-/* dmf.c 4.10 82/10/17 */
+/* dmf.c 4.11 82/10/17 */
#include "dmf.h"
#if NDMF > 0
#include "dmf.h"
#if NDMF > 0
{
register struct tty *tp;
register int unit = minor(dev);
{
register struct tty *tp;
register int unit = minor(dev);
- register int dmf = unit >> 3;
- register struct device *dmfaddr;
int error;
tp = &dmf_tty[unit];
int error;
tp = &dmf_tty[unit];
register struct tty *tp;
{
register struct dmfdevice *addr;
register struct tty *tp;
{
register struct dmfdevice *addr;
- register int car, dmf, unit, nch;
+ register int unit, nch;
int s;
unit = minor(tp->t_dev);
int s;
unit = minor(tp->t_dev);
unit &= 07;
addr = (struct dmfdevice *)tp->t_addr;
unit &= 07;
addr = (struct dmfdevice *)tp->t_addr;
+/* dn.c 4.10 82/10/17 */
#include "dn.h"
#if NDN > 0
#include "dn.h"
#if NDN > 0
#include "../h/pte.h"
#include "../h/conf.h"
#include "../h/ioctl.h"
#include "../h/pte.h"
#include "../h/conf.h"
#include "../h/ioctl.h"
#include "../vaxuba/ubavar.h"
#include "../vaxuba/ubavar.h"
register int br, cvec; /* value-result, must be r11, r10 */
register struct dndevice *dnaddr = (struct dndevice *)reg;
register int br, cvec; /* value-result, must be r11, r10 */
register struct dndevice *dnaddr = (struct dndevice *)reg;
+#ifdef lint
+ br = 0; cvec = 0; br = cvec; cvec = br;
+#endif
/*
* If there's at least one dialer out there it better be
/*
* If there's at least one dialer out there it better be
*/
dnaddr->dn_reg[0] = MENABLE|IENABLE|DONE;
DELAY(5);
*/
dnaddr->dn_reg[0] = MENABLE|IENABLE|DONE;
DELAY(5);
return (sizeof (struct dndevice));
}
return (sizeof (struct dndevice));
}
dnattach(ui)
struct uba_device *ui;
{
dnattach(ui)
struct uba_device *ui;
{
register u_short *dnreg;
register int cc;
register struct dndevice *dp;
register u_short *dnreg;
register int cc;
register struct dndevice *dp;
register char *cp;
extern lbolt;
int error;
register char *cp;
extern lbolt;
int error;
dp = (struct dndevice *)dninfo[DNUNIT(dev)]->ui_addr;
dnreg = &(dp->dn_reg[DNREG(dev)]);
cc = MIN(uio->uio_resid, OBUFSIZ);
dp = (struct dndevice *)dninfo[DNUNIT(dev)]->ui_addr;
dnreg = &(dp->dn_reg[DNREG(dev)]);
cc = MIN(uio->uio_resid, OBUFSIZ);
error = uiomove(cp, (unsigned)cc, UIO_WRITE, uio);
if (error)
return (error);
error = uiomove(cp, (unsigned)cc, UIO_WRITE, uio);
if (error)
return (error);
-/* idc.c 4.7 82/10/17 */
+/* idc.c 4.8 82/10/17 */
#include "rb.h"
#if NIDC > 0
#include "rb.h"
#if NIDC > 0
#define printd if(idcdebug)printf
int idctrb[1000];
int *trp = idctrb;
#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;}
+#define trace(a,b) {*trp++ = *(int*)a; *trp++ = (int)b; if(trp>&idctrb[998])trp=idctrb;}
/*
* IDC (RB730) disk driver
*
/*
* IDC (RB730) disk driver
*
int idcwstart, idcwticks, idcwatch();
int idcwstart, idcwticks, idcwatch();
idcprobe(reg)
caddr_t reg;
{
idcprobe(reg)
caddr_t reg;
{
return (sizeof (struct idcdevice));
}
return (sizeof (struct idcdevice));
}
idcslave(ui, reg)
struct uba_device *ui;
caddr_t reg;
idcslave(ui, reg)
struct uba_device *ui;
caddr_t reg;
return (0);
i = idcaddr->idcmpr; /* read header word 1 */
i = idcaddr->idcmpr; /* read header word 2 */
return (0);
i = idcaddr->idcmpr; /* read header word 1 */
i = idcaddr->idcmpr; /* read header word 2 */
+#ifdef lint
+ i = i;
+#endif
if (idcaddr->idccsr&IDC_R80)
ui->ui_type = 1;
return (1);
if (idcaddr->idccsr&IDC_R80)
ui->ui_type = 1;
return (1);
bn *= 2;
bp->b_cylin = bn/st->nspc + st->sizes[xunit].cyloff;
(void) spl5();
bn *= 2;
bp->b_cylin = bn/st->nspc + st->sizes[xunit].cyloff;
(void) spl5();
dp = &idcutab[ui->ui_unit];
disksort(dp, bp);
if (dp->b_active == 0) {
dp = &idcutab[ui->ui_unit];
disksort(dp, bp);
if (dp->b_active == 0) {
(void) idcustart(ui);
bp = &ui->ui_mi->um_tab;
if (bp->b_actf && bp->b_active == 0)
(void) idcustart(ui);
bp = &ui->ui_mi->um_tab;
if (bp->b_actf && bp->b_active == 0)
dp = &idcutab[ui->ui_unit];
um = ui->ui_mi;
unit = ui->ui_slave;
dp = &idcutab[ui->ui_unit];
um = ui->ui_mi;
unit = ui->ui_slave;
idcaddr = (struct idcdevice *)um->um_addr;
if (um->um_tab.b_active) {
idc_softc.sc_softas |= 1<<unit;
idcaddr = (struct idcdevice *)um->um_addr;
if (um->um_tab.b_active) {
idc_softc.sc_softas |= 1<<unit;
- trace('umac',idc_softc.sc_softas);
+ trace("umac",idc_softc.sc_softas);
return (0);
}
if ((bp = dp->b_actf) == NULL) {
return (0);
}
if ((bp = dp->b_actf) == NULL) {
return (0);
}
if (dp->b_active) {
return (0);
}
if (dp->b_active) {
- trace('dpac',dp->b_active);
+ trace("dpac",dp->b_active);
goto done;
}
dp->b_active = 1;
/* CHECK DRIVE READY? */
bn = dkblock(bp);
goto done;
}
dp->b_active = 1;
/* CHECK DRIVE READY? */
bn = dkblock(bp);
if (ui->ui_type == 0)
bn *= 2;
st = &idcst[ui->ui_type];
if (ui->ui_type == 0)
bn *= 2;
st = &idcst[ui->ui_type];
return (1);
done:
if (dp->b_active != 2) {
return (1);
done:
if (dp->b_active != 2) {
- trace('!=2',dp->b_active);
+ trace("!=2",dp->b_active);
dp->b_forw = NULL;
if (um->um_tab.b_actf == NULL)
um->um_tab.b_actf = dp;
else {
dp->b_forw = NULL;
if (um->um_tab.b_actf == NULL)
um->um_tab.b_actf = dp;
else {
- trace('!NUL',um->um_tab.b_actl);
+ trace("!NUL",um->um_tab.b_actl);
um->um_tab.b_actl->b_forw = dp;
}
um->um_tab.b_actl = dp;
um->um_tab.b_actl->b_forw = dp;
}
um->um_tab.b_actl = dp;
loop:
if ((dp = um->um_tab.b_actf) == NULL) {
loop:
if ((dp = um->um_tab.b_actf) == NULL) {
return (0);
}
if ((bp = dp->b_actf) == NULL) {
return (0);
}
if ((bp = dp->b_actf) == NULL) {
um->um_tab.b_actf = dp->b_forw;
goto loop;
}
um->um_tab.b_active = 1;
ui = idcdinfo[dkunit(bp)];
bn = dkblock(bp);
um->um_tab.b_actf = dp->b_forw;
goto loop;
}
um->um_tab.b_active = 1;
ui = idcdinfo[dkunit(bp)];
bn = dkblock(bp);
if (ui->ui_type == 0)
bn *= 2;
sc = &idc_softc;
if (ui->ui_type == 0)
bn *= 2;
sc = &idc_softc;
idcaddr->idcdar = sc->sc_dar;
printd("idcdgo, ubinfo 0x%x, cmd 0x%x\n", um->um_ubinfo, um->um_cmd);
idcaddr->idccsr = um->um_cmd;
idcaddr->idcdar = sc->sc_dar;
printd("idcdgo, ubinfo 0x%x, cmd 0x%x\n", um->um_ubinfo, um->um_cmd);
idcaddr->idccsr = um->um_cmd;
um->um_tab.b_active = 2;
/*** CLEAR SPURIOUS ATTN ON R80? ***/
}
um->um_tab.b_active = 2;
/*** CLEAR SPURIOUS ATTN ON R80? ***/
}
printd("idcintr, idccsr 0x%x", idcaddr->idccsr);
top:
idcwticks = 0;
printd("idcintr, idccsr 0x%x", idcaddr->idccsr);
top:
idcwticks = 0;
- trace('intr', um->um_tab.b_active);
+ trace("intr", um->um_tab.b_active);
if (um->um_tab.b_active == 2) {
/*
* Process a data transfer complete interrupt.
if (um->um_tab.b_active == 2) {
/*
* Process a data transfer complete interrupt.
dp->b_active = 0;
dp->b_errcnt = 0;
dp->b_actf = bp->av_forw;
dp->b_active = 0;
dp->b_errcnt = 0;
dp->b_actf = bp->av_forw;
- trace('done', dp); trace(um->um_tab.b_actf, dp->b_actf);
+ trace("done", dp); trace(&um->um_tab.b_actf, dp->b_actf);
bp->b_resid = sc->sc_resid;
printd(", iodone, resid 0x%x\n", bp->b_resid);
iodone(bp);
bp->b_resid = sc->sc_resid;
printd(", iodone, resid 0x%x\n", bp->b_resid);
iodone(bp);
idcaddr->idccsr = IDC_IE|IDC_CRDY|(as&IDC_ATTN);
as = ((as >> 16) & 0xf) | sc->sc_softas;
sc->sc_softas = 0;
idcaddr->idccsr = IDC_IE|IDC_CRDY|(as&IDC_ATTN);
as = ((as >> 16) & 0xf) | sc->sc_softas;
sc->sc_softas = 0;
printd(", as %o", as);
for (unit = 0; unit < NRB; unit++)
if (as & (1<<unit)) {
printd(", as %o", as);
for (unit = 0; unit < NRB; unit++)
if (as & (1<<unit)) {
}
printd("\n");
if (um->um_tab.b_actf && um->um_tab.b_active == 0) {
}
printd("\n");
if (um->um_tab.b_actf && um->um_tab.b_active == 0) {
- trace('stum',um->um_tab.b_actf);
+ trace("stum",um->um_tab.b_actf);
register struct idcdevice *addr;
register struct idcdevice *addr;
- while (--cnt && (addr->idccsr & IDC_CRDY) == 0)
+ while (--n && (addr->idccsr & IDC_CRDY) == 0)
idcdump(dev)
dev_t dev;
{
idcdump(dev)
dev_t dev;
{
-/* rk.c 4.48 82/10/17 */
+/* rk.c 4.49 82/10/17 */
#include "rk.h"
#if NHK > 0
#include "rk.h"
#if NHK > 0
int unit;
struct rk_softc *sc = &rk_softc[um->um_ctlr];
int as = (rkaddr->rkatt >> 8) | sc->sc_softas;
int unit;
struct rk_softc *sc = &rk_softc[um->um_ctlr];
int as = (rkaddr->rkatt >> 8) | sc->sc_softas;
sc->sc_wticks = 0;
sc->sc_softas = 0;
sc->sc_wticks = 0;
sc->sc_softas = 0;
}
if (um->um_tab.b_actf && um->um_tab.b_active == 0)
rkstart(um);
}
if (um->um_tab.b_actf && um->um_tab.b_active == 0)
rkstart(um);
- if (((needie = rkaddr->rkcs1) & RK_IE) == 0)
+ if (((rkaddr->rkcs1) & RK_IE) == 0)
-/* tm.c 4.56 82/10/17 */
+/* tm.c 4.57 82/10/17 */
#include "te.h"
#include "ts.h"
#include "te.h"
#include "ts.h"
#include "../h/mtio.h"
#include "../h/cmap.h"
#include "../h/uio.h"
#include "../h/mtio.h"
#include "../h/cmap.h"
#include "../h/uio.h"
+#include "../h/kernel.h"
#include "../vax/cpu.h"
#include "../vaxuba/ubareg.h"
#include "../vax/cpu.h"
#include "../vaxuba/ubareg.h"
-/* ts.c 4.31 82/10/17 */
+/* ts.c 4.32 82/10/17 */
#include "ts.h"
#if NTS > 0
#include "ts.h"
#if NTS > 0
while (--callcount >= 0) {
tscommand(dev, tsops[mtop->mt_op], fcount);
if ((mtop->mt_op == MTFSR || mtop->mt_op == MTBSR) &&
while (--callcount >= 0) {
tscommand(dev, tsops[mtop->mt_op], fcount);
if ((mtop->mt_op == MTFSR || mtop->mt_op == MTBSR) &&
return (EIO);
if ((bp->b_flags&B_ERROR) || sc->sc_sts.s_xs0&TS_BOT)
break;
return (EIO);
if ((bp->b_flags&B_ERROR) || sc->sc_sts.s_xs0&TS_BOT)
break;
-/* uba.c 4.51 82/10/17 */
+/* uba.c 4.52 82/10/17 */
#include "../h/param.h"
#include "../h/systm.h"
#include "../h/param.h"
#include "../h/systm.h"
struct buf *bp;
{
register struct uba_hd *uh = &uba_hd[uban];
struct buf *bp;
{
register struct uba_hd *uh = &uba_hd[uban];
int npf, reg, bdp;
unsigned v;
register struct pte *pte, *io;
int npf, reg, bdp;
unsigned v;
register struct pte *pte, *io;
* Returns > 0 if successful, 0 if not.
*/
* Returns > 0 if successful, 0 if not.
*/
-ubamem(uban, addr, size, alloc)
+ubamem(uban, addr, size, doalloc)
+ int uban, addr, size, doalloc;
{
register struct uba_hd *uh = &uba_hd[uban];
register int *m;
register int i, a, s;
{
register struct uba_hd *uh = &uba_hd[uban];
register int *m;
register int i, a, s;
s = spl6();
a = rmget(uh->uh_map, size, (addr>>9)+1); /* starts at ONE! */
splx(s);
s = spl6();
a = rmget(uh->uh_map, size, (addr>>9)+1); /* starts at ONE! */
splx(s);
-/* uda.c 4.11 82/10/17 */
+/* uda.c 4.12 82/10/17 */
#include "ra.h"
#if NUDA > 0
#include "ra.h"
#if NUDA > 0
#include "../vax/cpu.h"
#include "../vaxuba/ubareg.h"
#include "../vaxuba/ubavar.h"
#include "../vax/cpu.h"
#include "../vaxuba/ubareg.h"
#include "../vaxuba/ubavar.h"
+
+#define NRSPL2 3 /* log2 number of response packets */
+#define NCMDL2 3 /* log2 number of command packets */
+#define NRSP (1<<NRSPL2)
+#define NCMD (1<<NCMDL2)
+
#include "../vaxuba/udareg.h"
int udadebug;
#include "../vaxuba/udareg.h"
int udadebug;
int udaerror = 0; /* set to cause hex dump of error log packets */
int udaerror = 0; /* set to cause hex dump of error log packets */
-/*
- * Parameters for the communications area
- */
-
-#define NRSPL2 3 /* log2 number of response packets */
-#define NCMDL2 3 /* log2 number of command packets */
-#define NRSP (1<<NRSPL2)
-#define NCMD (1<<NCMDL2)
-
#include "../vax/mscp.h"
struct uda_softc {
#include "../vax/mscp.h"
struct uda_softc {