dh soft carrier bug
salkind%nyu at sri-unix.UUCP
salkind%nyu at sri-unix.UUCP
Sat Jan 28 10:49:10 AEST 1984
From: Lou Salkind <salkind at nyu>
Subject: dh soft carrier bug
Index: sys/vaxuba/dh.c 4.2BSD
Description:
If the soft carrier flag for a dh line is set (dhsoftCAR), and a
dm modem interrupt occurs on the line, the TS_CARR_ON flag may be
cleared. This causes future reads/writes to the terminal to return
EIO.
Repeat-By:
On a line with modem control, bring down DTR to force a modem
interrupt. (This really can happen!)
Fix:
In dmintr(), add the declaration:
register int unit;
and change
if (addr->dmcsr&DM_CF) {
tp = &dh11[(dm<<4)+(addr->dmcsr&0xf)];
to
unit = addr->dmcsr & 0xf;
if (addr->dmcsr&DM_CF && (dhsoftCAR[dm]&(1<<unit)) == 0) {
tp = &dh11[(dm<<4)+unit];
(Some may rationalize that the current behavior is correct, but
in my opinion soft carrier means "ignore modem signals.")
More information about the Comp.unix.wizards
mailing list