DMC: Avoid using CBUFSIZE for register array data since it can vary from one platform to another.
The consequence is that cross platform save/restore operations will fail if the CBUFSIZE is different.
This commit is contained in:
parent
ed2de2fcf2
commit
aa5bc9e867
1 changed files with 11 additions and 10 deletions
|
@ -998,9 +998,10 @@ uint16 dmc_sel2[DMC_NUMDEVICE];
|
|||
uint16 dmc_sel4[DMC_NUMDEVICE];
|
||||
uint16 dmc_sel6[DMC_NUMDEVICE];
|
||||
|
||||
#define PEERSIZE 512
|
||||
uint32 dmc_speed[DMC_NUMDEVICE];
|
||||
char dmc_peer[DMC_NUMDEVICE][CBUFSIZE];
|
||||
char dmc_port[DMC_NUMDEVICE][CBUFSIZE];
|
||||
char dmc_peer[DMC_NUMDEVICE][PEERSIZE];
|
||||
char dmc_port[DMC_NUMDEVICE][PEERSIZE];
|
||||
uint32 dmc_baseaddr[DMC_NUMDEVICE];
|
||||
uint16 dmc_basesize[DMC_NUMDEVICE];
|
||||
uint8 dmc_modem[DMC_NUMDEVICE];
|
||||
|
@ -1015,8 +1016,8 @@ uint16 dmp_sel6[DMC_NUMDEVICE];
|
|||
uint16 dmp_sel10[DMC_NUMDEVICE];
|
||||
|
||||
uint32 dmp_speed[DMP_NUMDEVICE];
|
||||
char dmp_peer[DMP_NUMDEVICE][CBUFSIZE];
|
||||
char dmp_port[DMP_NUMDEVICE][CBUFSIZE];
|
||||
char dmp_peer[DMP_NUMDEVICE][PEERSIZE];
|
||||
char dmp_port[DMP_NUMDEVICE][PEERSIZE];
|
||||
uint32 dmp_baseaddr[DMP_NUMDEVICE];
|
||||
uint16 dmp_basesize[DMP_NUMDEVICE];
|
||||
uint8 dmp_modem[DMP_NUMDEVICE];
|
||||
|
@ -1058,8 +1059,8 @@ REG dmc_reg[] = {
|
|||
{ BRDATAD (SPEED, dmc_speed, DEV_RDX, 32, DMC_NUMDEVICE, "line speed") },
|
||||
{ BRDATAD (CORRUPT, dmc_corruption, DEV_RDX, 32, DMC_NUMDEVICE, "data corruption factor (0.1%)") },
|
||||
{ BRDATAD (DIAG, dmc_microdiag, DEV_RDX, 1, DMC_NUMDEVICE, "Microdiagnostic Enabled") },
|
||||
{ BRDATAD (PEER, dmc_peer, DEV_RDX, 8, DMC_NUMDEVICE*CBUFSIZE, "peer address:port") },
|
||||
{ BRDATAD (PORT, dmc_port, DEV_RDX, 8, DMC_NUMDEVICE*CBUFSIZE, "listen port") },
|
||||
{ BRDATAD (PEER, dmc_peer, DEV_RDX, 8, DMC_NUMDEVICE*PEERSIZE, "peer address:port") },
|
||||
{ BRDATAD (PORT, dmc_port, DEV_RDX, 8, DMC_NUMDEVICE*PEERSIZE, "listen port") },
|
||||
{ BRDATAD (BASEADDR, dmc_baseaddr, DEV_RDX, 32, DMC_NUMDEVICE, "program set base address") },
|
||||
{ BRDATAD (BASESIZE, dmc_basesize, DEV_RDX, 16, DMC_NUMDEVICE, "program set base size") },
|
||||
{ BRDATAD (MODEM, dmc_modem, DEV_RDX, 8, DMC_NUMDEVICE, "modem control bits") },
|
||||
|
@ -1076,8 +1077,8 @@ REG dmp_reg[] = {
|
|||
{ BRDATAD (SEL10, dmp_sel10, DEV_RDX, 16, DMP_NUMDEVICE, "Select 10 CSR") },
|
||||
{ BRDATAD (SPEED, dmp_speed, DEV_RDX, 32, DMC_NUMDEVICE, "line speed") },
|
||||
{ BRDATAD (CORRUPT, dmp_corruption, DEV_RDX, 32, DMC_NUMDEVICE, "data corruption factor (0.1%)") },
|
||||
{ BRDATAD (PEER, dmp_peer, DEV_RDX, 8, DMC_NUMDEVICE*CBUFSIZE, "peer address:port") },
|
||||
{ BRDATAD (PORT, dmp_port, DEV_RDX, 8, DMC_NUMDEVICE*CBUFSIZE, "listen port") },
|
||||
{ BRDATAD (PEER, dmp_peer, DEV_RDX, 8, DMC_NUMDEVICE*PEERSIZE, "peer address:port") },
|
||||
{ BRDATAD (PORT, dmp_port, DEV_RDX, 8, DMC_NUMDEVICE*PEERSIZE, "listen port") },
|
||||
{ BRDATAD (BASEADDR, dmp_baseaddr, DEV_RDX, 32, DMC_NUMDEVICE, "program set base address") },
|
||||
{ BRDATAD (BASESIZE, dmp_basesize, DEV_RDX, 16, DMC_NUMDEVICE, "program set base size") },
|
||||
{ BRDATAD (MODEM, dmp_modem, DEV_RDX, 8, DMP_NUMDEVICE, "modem control bits") },
|
||||
|
@ -1258,7 +1259,7 @@ t_stat dmc_setpeer (UNIT* uptr, int32 val, char* cptr, void* desc)
|
|||
DEVICE *dptr = (UNIBUS) ? ((&dmc_dev == find_dev_from_unit(uptr)) ? &dmc_dev : &dmp_dev) : &dmv_dev;
|
||||
int32 dmc = (int32)(uptr-dptr->units);
|
||||
char *peer = ((dptr == &dmc_dev)? &dmc_peer[dmc][0] : &dmp_peer[dmc][0]);
|
||||
char host[CBUFSIZE], port[CBUFSIZE];
|
||||
char host[PEERSIZE], port[PEERSIZE];
|
||||
|
||||
if ((!cptr) || (!*cptr))
|
||||
return SCPE_ARG;
|
||||
|
@ -1268,7 +1269,7 @@ if (sim_parse_addr (cptr, host, sizeof(host), NULL, port, sizeof(port), NULL, NU
|
|||
return SCPE_ARG;
|
||||
if (host[0] == '\0')
|
||||
return SCPE_ARG;
|
||||
strncpy(peer, cptr, CBUFSIZE-1);
|
||||
strncpy(peer, cptr, PEERSIZE-1);
|
||||
return SCPE_OK;
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue