VAX, PDP11: Correct TU58 register declarations
Use REG_STRUCT register flag via the SRDATAD and SRDATADF macros to reference per controller data structures in the CTLR structure. Fix #286
This commit is contained in:
parent
37733cabee
commit
72d4e73024
1 changed files with 27 additions and 20 deletions
|
@ -673,26 +673,33 @@ static UNIT td_unit[2*TD_NUMCTLR];
|
||||||
|
|
||||||
static REG td_reg[] = {
|
static REG td_reg[] = {
|
||||||
{ DRDATAD (CTRLRS, td_ctrls, 4, "number of controllers"), REG_HRO },
|
{ DRDATAD (CTRLRS, td_ctrls, 4, "number of controllers"), REG_HRO },
|
||||||
{ HRDATAD (ECODE, td_regval, 8, "end packet success code") },
|
|
||||||
{ HRDATAD (BLOCK, td_regval, 8, "current block number") },
|
{ DRDATAD (CTIME, td_ctime,24, "command time"), PV_LEFT },
|
||||||
{ HRDATAD (RX_CSR, td_regval,16, "input control/status register") },
|
{ DRDATAD (STIME, td_stime,24, "seek, per block"), PV_LEFT },
|
||||||
{ HRDATAD (RX_BUF, td_regval,16, "input buffer register") },
|
{ DRDATAD (XTIME, td_xtime,24, "tr set time"), PV_LEFT },
|
||||||
{ HRDATAD (TX_CSR, td_regval,16, "output control/status register") },
|
{ DRDATAD (ITIME, td_itime,24, "init time"), PV_LEFT },
|
||||||
{ HRDATAD (TX_BUF, td_regval,16, "output buffer register") },
|
|
||||||
{ DRDATAD (P_STATE,td_regval, 4, "protocol state"), REG_RO },
|
#define RDATA(nm,loc,wd,desc) SRDATAD(nm,td_ctlr[0].loc,16,wd,0,TD_NUMCTLR+1,sizeof(CTLR),REG_RO,desc)
|
||||||
{ DRDATAD (O_STATE,td_regval, 4, "output state"), REG_RO },
|
#define RDATAF(nm,loc,wd,desc,flds) SRDATADF(nm,td_ctlr[0].loc,16,wd,0,TD_NUMCTLR+1,sizeof(CTLR),REG_RO,desc,flds)
|
||||||
{ DRDATAD (IBPTR, td_regval, 9, "input buffer pointer") },
|
|
||||||
{ DRDATAD (OBPTR, td_regval, 9, "output buffer pointer") },
|
{ RDATA (ECODE, ecode, 16, "end packet success code") },
|
||||||
{ DRDATAD (ILEN, td_regval, 9, "input length") },
|
{ RDATA (BLOCK, block, 16, "current block number") },
|
||||||
{ DRDATAD (OLEN, td_regval, 9, "output length") },
|
{ RDATAF (RX_CSR, rx_csr, 16, "input control/status register", rx_csr_bits) },
|
||||||
{ DRDATAD (TXSIZE, td_regval, 9, "remaining transfer size") },
|
{ RDATAF (RX_BUF, rx_buf, 16, "input buffer register", rx_buf_bits) },
|
||||||
{ DRDATAD (OFFSET, td_regval, 9, "offset into current transfer") },
|
{ RDATAF (TX_CSR, tx_csr, 16, "output control/status register", tx_csr_bits) },
|
||||||
{ DRDATAD (CTIME, td_regval,24, "command time"), PV_LEFT },
|
{ RDATAF (TX_BUF, tx_buf, 16, "output buffer register", tx_buf_bits) },
|
||||||
{ DRDATAD (STIME, td_regval,24, "seek, per block"), PV_LEFT },
|
{ RDATA (P_STATE,p_state, 4, "protocol state") },
|
||||||
{ DRDATAD (XTIME, td_regval,24, "tr set time"), PV_LEFT },
|
{ RDATA (O_STATE,o_state, 4, "output state") },
|
||||||
{ DRDATAD (ITIME, td_regval,24, "init time"), PV_LEFT },
|
{ RDATA (IBPTR, ibptr, 16, "input buffer pointer") },
|
||||||
{ BRDATAD (IBUF, &td_regval,16, 8, 512, "input buffer"), },
|
{ RDATA (OBPTR, obptr, 16, "output buffer pointer") },
|
||||||
{ BRDATAD (OBUF, &td_regval,16, 8, 512, "output buffer"), },
|
{ RDATA (ILEN, ilen, 16, "input length") },
|
||||||
|
{ RDATA (OLEN, olen, 16, "output length") },
|
||||||
|
{ RDATA (TXSIZE, txsize, 16, "remaining transfer size") },
|
||||||
|
{ RDATA (OFFSET, offset, 16, "offset into current transfer") },
|
||||||
|
{ RDATA (UNITNO, unitno, 16, "active unit number") },
|
||||||
|
|
||||||
|
{ BRDATAD (IBUF, td_ctlr[0].ibuf,16, 8, 512, "input buffer"), },
|
||||||
|
{ BRDATAD (OBUF, td_ctlr[0].obuf,16, 8, 512, "output buffer"), },
|
||||||
{ NULL }
|
{ NULL }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue