PDP10, PDP11, VAX: Make sure that the DMC and DUP devices produce the right messages when an attach is attempted to an already attached line

This commit is contained in:
Mark Pizzolato 2014-04-06 16:42:10 -07:00
parent b5d5ef7b56
commit 74482ce448
3 changed files with 8 additions and 6 deletions

View file

@ -1149,7 +1149,7 @@ DEVICE dmc_dev =
#endif #endif
dmc_units, dmc_reg, dmc_mod, 3, DMC_RDX, 8, 1, DMC_RDX, 8, dmc_units, dmc_reg, dmc_mod, 3, DMC_RDX, 8, 1, DMC_RDX, 8,
NULL, NULL, &dmc_reset, NULL, &dmc_attach, &dmc_detach, NULL, NULL, &dmc_reset, NULL, &dmc_attach, &dmc_detach,
&dmc_dib, DEV_DISABLE | DEV_DIS | DEV_UBUS | DEV_DEBUG, 0, dmc_debug, &dmc_dib, DEV_DISABLE | DEV_DIS | DEV_UBUS | DEV_DEBUG | DEV_DONTAUTO, 0, dmc_debug,
NULL, NULL, &dmc_help, &dmc_help_attach, NULL, &dmc_description }; NULL, NULL, &dmc_help, &dmc_help_attach, NULL, &dmc_description };
/* /*
@ -1168,13 +1168,13 @@ DEVICE dmc_dev =
DEVICE dmp_dev = DEVICE dmp_dev =
{ "DMP", dmp_units, dmp_reg, dmp_mod, 3, DMC_RDX, 8, 1, DMC_RDX, 8, { "DMP", dmp_units, dmp_reg, dmp_mod, 3, DMC_RDX, 8, 1, DMC_RDX, 8,
NULL, NULL, &dmc_reset, NULL, &dmc_attach, &dmc_detach, NULL, NULL, &dmc_reset, NULL, &dmc_attach, &dmc_detach,
&dmp_dib, DEV_DISABLE | DEV_DIS | DEV_UBUS | DEV_DEBUG, 0, dmc_debug, &dmp_dib, DEV_DISABLE | DEV_DIS | DEV_UBUS | DEV_DEBUG | DEV_DONTAUTO, 0, dmc_debug,
NULL, NULL, &dmc_help, &dmc_help_attach, NULL, &dmp_description }; NULL, NULL, &dmc_help, &dmc_help_attach, NULL, &dmp_description };
DEVICE dmv_dev = DEVICE dmv_dev =
{ "DMV", dmp_units, dmp_reg, dmv_mod, 3, DMC_RDX, 8, 1, DMC_RDX, 8, { "DMV", dmp_units, dmp_reg, dmv_mod, 3, DMC_RDX, 8, 1, DMC_RDX, 8,
NULL, NULL, &dmc_reset, NULL, &dmc_attach, &dmc_detach, NULL, NULL, &dmc_reset, NULL, &dmc_attach, &dmc_detach,
&dmp_dib, DEV_DISABLE | DEV_DIS | DEV_QBUS | DEV_DEBUG, 0, dmc_debug, &dmp_dib, DEV_DISABLE | DEV_DIS | DEV_QBUS | DEV_DEBUG | DEV_DONTAUTO, 0, dmc_debug,
NULL, NULL, &dmc_help, &dmc_help_attach, NULL, &dmp_description }; NULL, NULL, &dmc_help, &dmc_help_attach, NULL, &dmp_description };
CTLR dmc_ctrls[DMC_NUMDEVICE + DMP_NUMDEVICE]; CTLR dmc_ctrls[DMC_NUMDEVICE + DMP_NUMDEVICE];
@ -1585,6 +1585,7 @@ dptr->units[newln].ctlr = &dmc_ctrls[(dptr == &dmc_dev) ? 0 : DMC_NUMDEVICE];
dptr->units[newln+1] = dmc_timer_unit_template; dptr->units[newln+1] = dmc_timer_unit_template;
dptr->units[newln+1].ctlr = &dmc_ctrls[(dptr == &dmc_dev) ? 0 : DMC_NUMDEVICE]; dptr->units[newln+1].ctlr = &dmc_ctrls[(dptr == &dmc_dev) ? 0 : DMC_NUMDEVICE];
mp->lines = newln; mp->lines = newln;
mp->uptr = dptr->units + newln; /* Identify polling unit */
return dmc_reset ((DEVICE *)desc); /* setup devices and auto config */ return dmc_reset ((DEVICE *)desc); /* setup devices and auto config */
} }

View file

@ -454,7 +454,7 @@ DEVICE dup_dev = {
2, 10, 31, 1, DEV_RDX, 8, 2, 10, 31, 1, DEV_RDX, 8,
NULL, NULL, &dup_reset, NULL, NULL, &dup_reset,
NULL, &dup_attach, &dup_detach, NULL, &dup_attach, &dup_detach,
&dup_dib, DEV_DIS | DEV_DISABLE | DEV_UBUS | DEV_DEBUG, 0, &dup_dib, DEV_DIS | DEV_DISABLE | DEV_UBUS | DEV_DEBUG | DEV_DONTAUTO, 0,
dup_debug, NULL, NULL, &dup_help, dup_help_attach, &dup_desc, dup_debug, NULL, NULL, &dup_help, dup_help_attach, &dup_desc,
&dup_description &dup_description
}; };
@ -464,7 +464,7 @@ DEVICE dpv_dev = {
2, 10, 31, 1, DEV_RDX, 8, 2, 10, 31, 1, DEV_RDX, 8,
NULL, NULL, &dup_reset, NULL, NULL, &dup_reset,
NULL, &dup_attach, &dup_detach, NULL, &dup_attach, &dup_detach,
&dup_dib, DEV_DIS | DEV_DISABLE | DEV_QBUS | DEV_DEBUG, 0, &dup_dib, DEV_DIS | DEV_DISABLE | DEV_QBUS | DEV_DEBUG | DEV_DONTAUTO, 0,
dup_debug, NULL, NULL, &dup_help, dup_help_attach, &dup_desc, dup_debug, NULL, NULL, &dup_help, dup_help_attach, &dup_desc,
&dup_description &dup_description
}; };
@ -1461,6 +1461,7 @@ for (l=dup_desc.lines; l < newln; l++) {
} }
dup_units[newln] = dup_poll_unit_template; dup_units[newln] = dup_poll_unit_template;
dup_desc.lines = newln; dup_desc.lines = newln;
dup_desc.uptr = dptr->units + newln; /* Identify polling unit */
dptr->numunits = newln + 1; dptr->numunits = newln + 1;
return dup_reset (dptr); /* setup lines and auto config */ return dup_reset (dptr); /* setup lines and auto config */
} }

View file

@ -2036,7 +2036,7 @@ if (lp->mp)
else else
if (lp->mp->uptr) if (lp->mp->uptr)
uptr = lp->mp->uptr; uptr = lp->mp->uptr;
if (uptr) { if (uptr && uptr->filename) {
/* Revise the unit's connect string to reflect the current attachments */ /* Revise the unit's connect string to reflect the current attachments */
uptr->filename = tmxr_mux_attach_string (uptr->filename, lp->mp); uptr->filename = tmxr_mux_attach_string (uptr->filename, lp->mp);
/* No connections or listeners exist, then we're equivalent to being fully detached. We should reflect that */ /* No connections or listeners exist, then we're equivalent to being fully detached. We should reflect that */