Fixed register definition for the pak array which saved and restored the wrong content (not all of it) due to the internal longword alignment of the struct rqpkt.

This commit is contained in:
Mark Pizzolato 2013-01-22 16:11:51 -08:00
parent 33897a6ff2
commit 936c3dbcfe

View file

@ -872,42 +872,45 @@ UNIT rq_unit[] = {
};
REG rq_reg[] = {
{ GRDATA (SA, rq_ctx.sa, DEV_RDX, 16, 0) },
{ GRDATA (SAW, rq_ctx.saw, DEV_RDX, 16, 0) },
{ GRDATA (S1DAT, rq_ctx.s1dat, DEV_RDX, 16, 0) },
{ GRDATA (COMM, rq_ctx.comm, DEV_RDX, 22, 0) },
{ GRDATA (CQIOFF, rq_ctx.cq.ioff, DEV_RDX, 32, 0) },
{ GRDATA (CQBA, rq_ctx.cq.ba, DEV_RDX, 22, 0) },
{ GRDATA (CQLNT, rq_ctx.cq.lnt, DEV_RDX, 8, 2), REG_NZ },
{ GRDATA (CQIDX, rq_ctx.cq.idx, DEV_RDX, 8, 2) },
{ GRDATA (RQIOFF, rq_ctx.rq.ioff, DEV_RDX, 32, 0) },
{ GRDATA (RQBA, rq_ctx.rq.ba, DEV_RDX, 22, 0) },
{ GRDATA (RQLNT, rq_ctx.rq.lnt, DEV_RDX, 8, 2), REG_NZ },
{ GRDATA (RQIDX, rq_ctx.rq.idx, DEV_RDX, 8, 2) },
{ DRDATA (FREE, rq_ctx.freq, 5) },
{ DRDATA (RESP, rq_ctx.rspq, 5) },
{ DRDATA (PBSY, rq_ctx.pbsy, 5) },
{ GRDATA (CFLGS, rq_ctx.cflgs, DEV_RDX, 16, 0) },
{ GRDATA (CSTA, rq_ctx.csta, DEV_RDX, 4, 0) },
{ GRDATA (PERR, rq_ctx.perr, DEV_RDX, 9, 0) },
{ DRDATA (CRED, rq_ctx.credits, 5) },
{ DRDATA (HAT, rq_ctx.hat, 17) },
{ DRDATA (HTMO, rq_ctx.htmo, 17) },
{ FLDATA (PRGI, rq_ctx.prgi, 0), REG_HIDDEN },
{ FLDATA (PIP, rq_ctx.pip, 0), REG_HIDDEN },
{ FLDATA (INT, rq_ctx.irq, 0) },
{ DRDATA (ITIME, rq_itime, 24), PV_LEFT + REG_NZ },
{ DRDATA (I4TIME, rq_itime4, 24), PV_LEFT + REG_NZ },
{ DRDATA (QTIME, rq_qtime, 24), PV_LEFT + REG_NZ },
{ DRDATA (XTIME, rq_xtime, 24), PV_LEFT + REG_NZ },
{ BRDATA (PKTS, rq_ctx.pak, DEV_RDX, 16, RQ_NPKTS * (RQ_PKT_SIZE_W + 1)) },
{ URDATA (CPKT, rq_unit[0].cpkt, 10, 5, 0, RQ_NUMDR, 0) },
{ URDATA (PKTQ, rq_unit[0].pktq, 10, 5, 0, RQ_NUMDR, 0) },
{ URDATA (UFLG, rq_unit[0].uf, DEV_RDX, 16, 0, RQ_NUMDR, 0) },
{ URDATA (CAPAC, rq_unit[0].capac, 10, T_ADDR_W, 0, RQ_NUMDR, PV_LEFT | REG_HRO) },
{ GRDATA (DEVADDR, rq_dib.ba, DEV_RDX, 32, 0), REG_HRO },
{ GRDATA (DEVVEC, rq_dib.vec, DEV_RDX, 16, 0), REG_HRO },
{ DRDATA (DEVLBN, drv_tab[RA8U_DTYPE].lbn, 22), REG_HRO },
{ GRDATA (UBASE, rq_ctx.ubase, DEV_RDX, 8, 0), REG_RO },
{ GRDATA (SA, rq_ctx.sa, DEV_RDX, 16, 0) },
{ GRDATA (SAW, rq_ctx.saw, DEV_RDX, 16, 0) },
{ GRDATA (S1DAT, rq_ctx.s1dat, DEV_RDX, 16, 0) },
{ GRDATA (COMM, rq_ctx.comm, DEV_RDX, 22, 0) },
{ GRDATA (CQIOFF, rq_ctx.cq.ioff, DEV_RDX, 32, 0) },
{ GRDATA (CQBA, rq_ctx.cq.ba, DEV_RDX, 22, 0) },
{ GRDATA (CQLNT, rq_ctx.cq.lnt, DEV_RDX, 32, 2), REG_NZ },
{ GRDATA (CQIDX, rq_ctx.cq.idx, DEV_RDX, 8, 2) },
{ GRDATA (RQIOFF, rq_ctx.rq.ioff, DEV_RDX, 32, 0) },
{ GRDATA (RQBA, rq_ctx.rq.ba, DEV_RDX, 22, 0) },
{ GRDATA (RQLNT, rq_ctx.rq.lnt, DEV_RDX, 32, 2), REG_NZ },
{ GRDATA (RQIDX, rq_ctx.rq.idx, DEV_RDX, 8, 2) },
{ DRDATA (FREE, rq_ctx.freq, 5) },
{ DRDATA (RESP, rq_ctx.rspq, 5) },
{ DRDATA (PBSY, rq_ctx.pbsy, 5) },
{ GRDATA (CFLGS, rq_ctx.cflgs, DEV_RDX, 16, 0) },
{ GRDATA (CSTA, rq_ctx.csta, DEV_RDX, 4, 0) },
{ GRDATA (PERR, rq_ctx.perr, DEV_RDX, 9, 0) },
{ DRDATA (CRED, rq_ctx.credits, 5) },
{ DRDATA (HAT, rq_ctx.hat, 17) },
{ DRDATA (HTMO, rq_ctx.htmo, 17) },
{ FLDATA (PRGI, rq_ctx.prgi, 0), REG_HIDDEN },
{ FLDATA (PIP, rq_ctx.pip, 0), REG_HIDDEN },
{ FLDATA (CTYPE, rq_ctx.ctype, 32), REG_HIDDEN },
{ DRDATA (ITIME, rq_itime, 24), PV_LEFT + REG_NZ },
{ DRDATA (ITIME, rq_itime, 24), PV_LEFT + REG_NZ },
{ DRDATA (I4TIME, rq_itime4, 24), PV_LEFT + REG_NZ },
{ DRDATA (QTIME, rq_qtime, 24), PV_LEFT + REG_NZ },
{ DRDATA (XTIME, rq_xtime, 24), PV_LEFT + REG_NZ },
{ BRDATA (PKTS, rq_ctx.pak, DEV_RDX, 16, sizeof(rq_ctx.pak)/2) },
{ URDATA (CPKT, rq_unit[0].cpkt, 10, 5, 0, RQ_NUMDR, 0) },
{ URDATA (UCNUM, rq_unit[0].cnum, 10, 5, 0, RQ_NUMDR, 0) },
{ URDATA (PKTQ, rq_unit[0].pktq, 10, 5, 0, RQ_NUMDR, 0) },
{ URDATA (UFLG, rq_unit[0].uf, DEV_RDX, 16, 0, RQ_NUMDR, 0) },
{ URDATA (CAPAC, rq_unit[0].capac, 10, T_ADDR_W, 0, RQ_NUMDR, PV_LEFT | REG_HRO) },
{ GRDATA (DEVADDR, rq_dib.ba, DEV_RDX, 32, 0), REG_HRO },
{ GRDATA (DEVVEC, rq_dib.vec, DEV_RDX, 16, 0), REG_HRO },
{ DRDATA (DEVLBN, drv_tab[RA8U_DTYPE].lbn, 22), REG_HRO },
{ NULL }
};
@ -1038,37 +1041,39 @@ UNIT rqb_unit[] = {
};
REG rqb_reg[] = {
{ GRDATA (SA, rqb_ctx.sa, DEV_RDX, 16, 0) },
{ GRDATA (SAW, rqb_ctx.saw, DEV_RDX, 16, 0) },
{ GRDATA (S1DAT, rqb_ctx.s1dat, DEV_RDX, 16, 0) },
{ GRDATA (COMM, rqb_ctx.comm, DEV_RDX, 22, 0) },
{ GRDATA (CQIOFF, rqb_ctx.cq.ioff, DEV_RDX, 32, 0) },
{ GRDATA (CQBA, rqb_ctx.cq.ba, DEV_RDX, 22, 0) },
{ GRDATA (CQLNT, rqb_ctx.cq.lnt, DEV_RDX, 8, 2), REG_NZ },
{ GRDATA (CQIDX, rqb_ctx.cq.idx, DEV_RDX, 8, 2) },
{ GRDATA (RQIOFF, rqb_ctx.rq.ioff, DEV_RDX, 32, 0) },
{ GRDATA (RQBA, rqb_ctx.rq.ba, DEV_RDX, 22, 0) },
{ GRDATA (RQLNT, rqb_ctx.rq.lnt, DEV_RDX, 8, 2), REG_NZ },
{ GRDATA (RQIDX, rqb_ctx.rq.idx, DEV_RDX, 8, 2) },
{ DRDATA (FREE, rqb_ctx.freq, 5) },
{ DRDATA (RESP, rqb_ctx.rspq, 5) },
{ DRDATA (PBSY, rqb_ctx.pbsy, 5) },
{ GRDATA (CFLGS, rqb_ctx.cflgs, DEV_RDX, 16, 0) },
{ GRDATA (CSTA, rqb_ctx.csta, DEV_RDX, 4, 0) },
{ GRDATA (PERR, rqb_ctx.perr, DEV_RDX, 9, 0) },
{ DRDATA (CRED, rqb_ctx.credits, 5) },
{ DRDATA (HAT, rqb_ctx.hat, 17) },
{ DRDATA (HTMO, rqb_ctx.htmo, 17) },
{ FLDATA (PRGI, rqb_ctx.prgi, 0), REG_HIDDEN },
{ FLDATA (PIP, rqb_ctx.pip, 0), REG_HIDDEN },
{ FLDATA (INT, rqb_ctx.irq, 0) },
{ BRDATA (PKTS, rqb_ctx.pak, DEV_RDX, 16, RQ_NPKTS * (RQ_PKT_SIZE_W + 1)) },
{ URDATA (CPKT, rqb_unit[0].cpkt, 10, 5, 0, RQ_NUMDR, 0) },
{ URDATA (PKTQ, rqb_unit[0].pktq, 10, 5, 0, RQ_NUMDR, 0) },
{ URDATA (UFLG, rqb_unit[0].uf, DEV_RDX, 16, 0, RQ_NUMDR, 0) },
{ URDATA (CAPAC, rqb_unit[0].capac, 10, T_ADDR_W, 0, RQ_NUMDR, PV_LEFT | REG_HRO) },
{ GRDATA (DEVADDR, rqb_dib.ba, DEV_RDX, 32, 0), REG_HRO },
{ GRDATA (DEVVEC, rqb_dib.vec, DEV_RDX, 16, 0), REG_HRO },
{ GRDATA (UBASE, rqb_ctx.ubase, DEV_RDX, 8, 0), REG_RO },
{ GRDATA (SA, rqb_ctx.sa, DEV_RDX, 16, 0) },
{ GRDATA (SAW, rqb_ctx.saw, DEV_RDX, 16, 0) },
{ GRDATA (S1DAT, rqb_ctx.s1dat, DEV_RDX, 16, 0) },
{ GRDATA (COMM, rqb_ctx.comm, DEV_RDX, 22, 0) },
{ GRDATA (CQIOFF, rqb_ctx.cq.ioff, DEV_RDX, 32, 0) },
{ GRDATA (CQBA, rqb_ctx.cq.ba, DEV_RDX, 22, 0) },
{ GRDATA (CQLNT, rqb_ctx.cq.lnt, DEV_RDX, 32, 2), REG_NZ },
{ GRDATA (CQIDX, rqb_ctx.cq.idx, DEV_RDX, 8, 2) },
{ GRDATA (RQIOFF, rqb_ctx.rq.ioff, DEV_RDX, 32, 0) },
{ GRDATA (RQBA, rqb_ctx.rq.ba, DEV_RDX, 22, 0) },
{ GRDATA (RQLNT, rqb_ctx.rq.lnt, DEV_RDX, 32, 2), REG_NZ },
{ GRDATA (RQIDX, rqb_ctx.rq.idx, DEV_RDX, 8, 2) },
{ DRDATA (FREE, rqb_ctx.freq, 5) },
{ DRDATA (RESP, rqb_ctx.rspq, 5) },
{ DRDATA (PBSY, rqb_ctx.pbsy, 5) },
{ GRDATA (CFLGS, rqb_ctx.cflgs, DEV_RDX, 16, 0) },
{ GRDATA (CSTA, rqb_ctx.csta, DEV_RDX, 4, 0) },
{ GRDATA (PERR, rqb_ctx.perr, DEV_RDX, 9, 0) },
{ DRDATA (CRED, rqb_ctx.credits, 5) },
{ DRDATA (HAT, rqb_ctx.hat, 17) },
{ DRDATA (HTMO, rqb_ctx.htmo, 17) },
{ FLDATA (PRGI, rqb_ctx.prgi, 0), REG_HIDDEN },
{ FLDATA (PIP, rqb_ctx.pip, 0), REG_HIDDEN },
{ FLDATA (CTYPE, rqb_ctx.ctype, 32), REG_HIDDEN },
{ BRDATA (PKTS, rqb_ctx.pak, DEV_RDX, 16, sizeof(rqb_ctx.pak)/2) },
{ URDATA (CPKT, rqb_unit[0].cpkt, 10, 5, 0, RQ_NUMDR, 0) },
{ URDATA (UCNUM, rqb_unit[0].cnum, 10, 5, 0, RQ_NUMDR, 0) },
{ URDATA (PKTQ, rqb_unit[0].pktq, 10, 5, 0, RQ_NUMDR, 0) },
{ URDATA (UFLG, rqb_unit[0].uf, DEV_RDX, 16, 0, RQ_NUMDR, 0) },
{ URDATA (CAPAC, rqb_unit[0].capac, 10, T_ADDR_W, 0, RQ_NUMDR, PV_LEFT | REG_HRO) },
{ GRDATA (DEVADDR, rqb_dib.ba, DEV_RDX, 32, 0), REG_HRO },
{ GRDATA (DEVVEC, rqb_dib.vec, DEV_RDX, 16, 0), REG_HRO },
{ NULL }
};
@ -1110,37 +1115,39 @@ UNIT rqc_unit[] = {
};
REG rqc_reg[] = {
{ GRDATA (SA, rqc_ctx.sa, DEV_RDX, 16, 0) },
{ GRDATA (SAW, rqc_ctx.saw, DEV_RDX, 16, 0) },
{ GRDATA (S1DAT, rqc_ctx.s1dat, DEV_RDX, 16, 0) },
{ GRDATA (COMM, rqc_ctx.comm, DEV_RDX, 22, 0) },
{ GRDATA (CQIOFF, rqc_ctx.cq.ioff, DEV_RDX, 32, 0) },
{ GRDATA (CQBA, rqc_ctx.cq.ba, DEV_RDX, 22, 0) },
{ GRDATA (CQLNT, rqc_ctx.cq.lnt, DEV_RDX, 8, 2), REG_NZ },
{ GRDATA (CQIDX, rqc_ctx.cq.idx, DEV_RDX, 8, 2) },
{ GRDATA (RQIOFF, rqc_ctx.rq.ioff, DEV_RDX, 32, 0) },
{ GRDATA (RQBA, rqc_ctx.rq.ba, DEV_RDX, 22, 0) },
{ GRDATA (RQLNT, rqc_ctx.rq.lnt, DEV_RDX, 8, 2), REG_NZ },
{ GRDATA (RQIDX, rqc_ctx.rq.idx, DEV_RDX, 8, 2) },
{ DRDATA (FREE, rqc_ctx.freq, 5) },
{ DRDATA (RESP, rqc_ctx.rspq, 5) },
{ DRDATA (PBSY, rqc_ctx.pbsy, 5) },
{ GRDATA (CFLGS, rqc_ctx.cflgs, DEV_RDX, 16, 0) },
{ GRDATA (CSTA, rqc_ctx.csta, DEV_RDX, 4, 0) },
{ GRDATA (PERR, rqc_ctx.perr, DEV_RDX, 9, 0) },
{ DRDATA (CRED, rqc_ctx.credits, 5) },
{ DRDATA (HAT, rqc_ctx.hat, 17) },
{ DRDATA (HTMO, rqc_ctx.htmo, 17) },
{ FLDATA (PRGI, rqc_ctx.prgi, 0), REG_HIDDEN },
{ FLDATA (PIP, rqc_ctx.pip, 0), REG_HIDDEN },
{ FLDATA (INT, rqc_ctx.irq, 0) },
{ BRDATA (PKTS, rqc_ctx.pak, DEV_RDX, 16, RQ_NPKTS * (RQ_PKT_SIZE_W + 1)) },
{ URDATA (CPKT, rqc_unit[0].cpkt, 10, 5, 0, RQ_NUMDR, 0) },
{ URDATA (PKTQ, rqc_unit[0].pktq, 10, 5, 0, RQ_NUMDR, 0) },
{ URDATA (UFLG, rqc_unit[0].uf, DEV_RDX, 16, 0, RQ_NUMDR, 0) },
{ URDATA (CAPAC, rqc_unit[0].capac, 10, T_ADDR_W, 0, RQ_NUMDR, PV_LEFT | REG_HRO) },
{ GRDATA (DEVADDR, rqc_dib.ba, DEV_RDX, 32, 0), REG_HRO },
{ GRDATA (DEVVEC, rqc_dib.vec, DEV_RDX, 16, 0), REG_HRO },
{ GRDATA (UBASE, rqc_ctx.ubase, DEV_RDX, 8, 0), REG_RO },
{ GRDATA (SA, rqc_ctx.sa, DEV_RDX, 16, 0) },
{ GRDATA (SAW, rqc_ctx.saw, DEV_RDX, 16, 0) },
{ GRDATA (S1DAT, rqc_ctx.s1dat, DEV_RDX, 16, 0) },
{ GRDATA (COMM, rqc_ctx.comm, DEV_RDX, 22, 0) },
{ GRDATA (CQIOFF, rqc_ctx.cq.ioff, DEV_RDX, 32, 0) },
{ GRDATA (CQBA, rqc_ctx.cq.ba, DEV_RDX, 22, 0) },
{ GRDATA (CQLNT, rqc_ctx.cq.lnt, DEV_RDX, 32, 2), REG_NZ },
{ GRDATA (CQIDX, rqc_ctx.cq.idx, DEV_RDX, 8, 2) },
{ GRDATA (RQIOFF, rqc_ctx.rq.ioff, DEV_RDX, 32, 0) },
{ GRDATA (RQBA, rqc_ctx.rq.ba, DEV_RDX, 22, 0) },
{ GRDATA (RQLNT, rqc_ctx.rq.lnt, DEV_RDX, 32, 2), REG_NZ },
{ GRDATA (RQIDX, rqc_ctx.rq.idx, DEV_RDX, 8, 2) },
{ DRDATA (FREE, rqc_ctx.freq, 5) },
{ DRDATA (RESP, rqc_ctx.rspq, 5) },
{ DRDATA (PBSY, rqc_ctx.pbsy, 5) },
{ GRDATA (CFLGS, rqc_ctx.cflgs, DEV_RDX, 16, 0) },
{ GRDATA (CSTA, rqc_ctx.csta, DEV_RDX, 4, 0) },
{ GRDATA (PERR, rqc_ctx.perr, DEV_RDX, 9, 0) },
{ DRDATA (CRED, rqc_ctx.credits, 5) },
{ DRDATA (HAT, rqc_ctx.hat, 17) },
{ DRDATA (HTMO, rqc_ctx.htmo, 17) },
{ FLDATA (PRGI, rqc_ctx.prgi, 0), REG_HIDDEN },
{ FLDATA (PIP, rqc_ctx.pip, 0), REG_HIDDEN },
{ FLDATA (CTYPE, rqc_ctx.ctype, 32), REG_HIDDEN },
{ BRDATA (PKTS, rqc_ctx.pak, DEV_RDX, 16, sizeof(rqc_ctx.pak)/2) },
{ URDATA (CPKT, rqc_unit[0].cpkt, 10, 5, 0, RQ_NUMDR, 0) },
{ URDATA (UCNUM, rqc_unit[0].cnum, 10, 5, 0, RQ_NUMDR, 0) },
{ URDATA (PKTQ, rqc_unit[0].pktq, 10, 5, 0, RQ_NUMDR, 0) },
{ URDATA (UFLG, rqc_unit[0].uf, DEV_RDX, 16, 0, RQ_NUMDR, 0) },
{ URDATA (CAPAC, rqc_unit[0].capac, 10, T_ADDR_W, 0, RQ_NUMDR, PV_LEFT | REG_HRO) },
{ GRDATA (DEVADDR, rqc_dib.ba, DEV_RDX, 32, 0), REG_HRO },
{ GRDATA (DEVVEC, rqc_dib.vec, DEV_RDX, 16, 0), REG_HRO },
{ NULL }
};
@ -1182,37 +1189,39 @@ UNIT rqd_unit[] = {
};
REG rqd_reg[] = {
{ GRDATA (SA, rqd_ctx.sa, DEV_RDX, 16, 0) },
{ GRDATA (SAW, rqd_ctx.saw, DEV_RDX, 16, 0) },
{ GRDATA (S1DAT, rqd_ctx.s1dat, DEV_RDX, 16, 0) },
{ GRDATA (COMM, rqd_ctx.comm, DEV_RDX, 22, 0) },
{ GRDATA (CQIOFF, rqd_ctx.cq.ioff, DEV_RDX, 32, 0) },
{ GRDATA (CQBA, rqd_ctx.cq.ba, DEV_RDX, 22, 0) },
{ GRDATA (CQLNT, rqd_ctx.cq.lnt, DEV_RDX, 8, 2), REG_NZ },
{ GRDATA (CQIDX, rqd_ctx.cq.idx, DEV_RDX, 8, 2) },
{ GRDATA (RQIOFF, rqd_ctx.rq.ioff, DEV_RDX, 32, 0) },
{ GRDATA (RQBA, rqd_ctx.rq.ba, DEV_RDX, 22, 0) },
{ GRDATA (RQLNT, rqd_ctx.rq.lnt, DEV_RDX, 8, 2), REG_NZ },
{ GRDATA (RQIDX, rqd_ctx.rq.idx, DEV_RDX, 8, 2) },
{ DRDATA (FREE, rqd_ctx.freq, 5) },
{ DRDATA (RESP, rqd_ctx.rspq, 5) },
{ DRDATA (PBSY, rqd_ctx.pbsy, 5) },
{ GRDATA (CFLGS, rqd_ctx.cflgs, DEV_RDX, 16, 0) },
{ GRDATA (CSTA, rqd_ctx.csta, DEV_RDX, 4, 0) },
{ GRDATA (PERR, rqd_ctx.perr, DEV_RDX, 9, 0) },
{ DRDATA (CRED, rqd_ctx.credits, 5) },
{ DRDATA (HAT, rqd_ctx.hat, 17) },
{ DRDATA (HTMO, rqd_ctx.htmo, 17) },
{ FLDATA (PRGI, rqd_ctx.prgi, 0), REG_HIDDEN },
{ FLDATA (PIP, rqd_ctx.pip, 0), REG_HIDDEN },
{ FLDATA (INT, rqd_ctx.irq, 0) },
{ BRDATA (PKTS, rqd_ctx.pak, DEV_RDX, 16, RQ_NPKTS * (RQ_PKT_SIZE_W + 1)) },
{ URDATA (CPKT, rqd_unit[0].cpkt, 10, 5, 0, RQ_NUMDR, 0) },
{ URDATA (PKTQ, rqd_unit[0].pktq, 10, 5, 0, RQ_NUMDR, 0) },
{ URDATA (UFLG, rqd_unit[0].uf, DEV_RDX, 16, 0, RQ_NUMDR, 0) },
{ URDATA (CAPAC, rqd_unit[0].capac, 10, T_ADDR_W, 0, RQ_NUMDR, PV_LEFT | REG_HRO) },
{ GRDATA (DEVADDR, rqd_dib.ba, DEV_RDX, 32, 0), REG_HRO },
{ GRDATA (DEVVEC, rqd_dib.vec, DEV_RDX, 16, 0), REG_HRO },
{ GRDATA (UBASE, rqd_ctx.ubase, DEV_RDX, 8, 0), REG_RO },
{ GRDATA (SA, rqd_ctx.sa, DEV_RDX, 16, 0) },
{ GRDATA (SAW, rqd_ctx.saw, DEV_RDX, 16, 0) },
{ GRDATA (S1DAT, rqd_ctx.s1dat, DEV_RDX, 16, 0) },
{ GRDATA (COMM, rqd_ctx.comm, DEV_RDX, 22, 0) },
{ GRDATA (CQIOFF, rqd_ctx.cq.ioff, DEV_RDX, 32, 0) },
{ GRDATA (CQBA, rqd_ctx.cq.ba, DEV_RDX, 22, 0) },
{ GRDATA (CQLNT, rqd_ctx.cq.lnt, DEV_RDX, 32, 2), REG_NZ },
{ GRDATA (CQIDX, rqd_ctx.cq.idx, DEV_RDX, 8, 2) },
{ GRDATA (RQIOFF, rqd_ctx.rq.ioff, DEV_RDX, 32, 0) },
{ GRDATA (RQBA, rqd_ctx.rq.ba, DEV_RDX, 22, 0) },
{ GRDATA (RQLNT, rqd_ctx.rq.lnt, DEV_RDX, 32, 2), REG_NZ },
{ GRDATA (RQIDX, rqd_ctx.rq.idx, DEV_RDX, 8, 2) },
{ DRDATA (FREE, rqd_ctx.freq, 5) },
{ DRDATA (RESP, rqd_ctx.rspq, 5) },
{ DRDATA (PBSY, rqd_ctx.pbsy, 5) },
{ GRDATA (CFLGS, rqd_ctx.cflgs, DEV_RDX, 16, 0) },
{ GRDATA (CSTA, rqd_ctx.csta, DEV_RDX, 4, 0) },
{ GRDATA (PERR, rqd_ctx.perr, DEV_RDX, 9, 0) },
{ DRDATA (CRED, rqd_ctx.credits, 5) },
{ DRDATA (HAT, rqd_ctx.hat, 17) },
{ DRDATA (HTMO, rqd_ctx.htmo, 17) },
{ FLDATA (PRGI, rqd_ctx.prgi, 0), REG_HIDDEN },
{ FLDATA (PIP, rqd_ctx.pip, 0), REG_HIDDEN },
{ FLDATA (CTYPE, rqd_ctx.ctype, 32), REG_HIDDEN },
{ BRDATA (PKTS, rqd_ctx.pak, DEV_RDX, 16, sizeof(rqd_ctx.pak)/2) },
{ URDATA (CPKT, rqd_unit[0].cpkt, 10, 5, 0, RQ_NUMDR, 0) },
{ URDATA (UCNUM, rqd_unit[0].cnum, 10, 5, 0, RQ_NUMDR, 0) },
{ URDATA (PKTQ, rqd_unit[0].pktq, 10, 5, 0, RQ_NUMDR, 0) },
{ URDATA (UFLG, rqd_unit[0].uf, DEV_RDX, 16, 0, RQ_NUMDR, 0) },
{ URDATA (CAPAC, rqd_unit[0].capac, 10, T_ADDR_W, 0, RQ_NUMDR, PV_LEFT | REG_HRO) },
{ GRDATA (DEVADDR, rqd_dib.ba, DEV_RDX, 32, 0), REG_HRO },
{ GRDATA (DEVVEC, rqd_dib.vec, DEV_RDX, 16, 0), REG_HRO },
{ NULL }
};