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:
parent
b5d5ef7b56
commit
74482ce448
3 changed files with 8 additions and 6 deletions
|
@ -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 */
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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 */
|
||||||
}
|
}
|
||||||
|
|
|
@ -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 */
|
||||||
|
|
Loading…
Add table
Reference in a new issue