diff options
author | phk <phk@FreeBSD.org> | 2004-07-11 15:18:39 +0000 |
---|---|---|
committer | phk <phk@FreeBSD.org> | 2004-07-11 15:18:39 +0000 |
commit | 3683e698d2b43b057fd00f831207c4322511e44d (patch) | |
tree | 620574f4324dc13c9b729c71899ac553f4582bcc /sys/dev/digi/digi.c | |
parent | f41e48677c13ba754473dc99f8dc21534770132f (diff) | |
download | FreeBSD-src-3683e698d2b43b057fd00f831207c4322511e44d.zip FreeBSD-src-3683e698d2b43b057fd00f831207c4322511e44d.tar.gz |
Introduce ttygone() which indicates that the hardware is detached.
Move dtrwait logic to the generic TTY level.
Diffstat (limited to 'sys/dev/digi/digi.c')
-rw-r--r-- | sys/dev/digi/digi.c | 21 |
1 files changed, 4 insertions, 17 deletions
diff --git a/sys/dev/digi/digi.c b/sys/dev/digi/digi.c index 8b56691..68081d5 100644 --- a/sys/dev/digi/digi.c +++ b/sys/dev/digi/digi.c @@ -603,7 +603,6 @@ digi_init(struct digi_softc *sc) fepcmd_w(port, SRXHWATER, (3 * port->rxbufsize) >> 2, 10); bc->edelay = 100; - port->dtr_wait = 3 * hz; /* * We don't use all the flags from <sys/ttydefaults.h> since @@ -738,7 +737,7 @@ digiopen(struct cdev *dev, int flag, int mode, struct thread *td) open_top: while (port->status & DIGI_DTR_OFF) { port->wopeners++; - error = tsleep(&port->dtr_wait, TTIPRI | PCATCH, "digidtr", 0); + error = tsleep(&tp->t_dtr_wait, TTIPRI | PCATCH, "digidtr", 0); port->wopeners--; if (error) goto out; @@ -906,7 +905,7 @@ digidtrwakeup(void *chan) struct digi_p *port = chan; port->status &= ~DIGI_DTR_OFF; - wakeup(&port->dtr_wait); + wakeup(&port->tp->t_dtr_wait); port->wopeners--; } @@ -929,10 +928,10 @@ digihardclose(struct digi_p *port) !(port->it_in.c_cflag & CLOCAL)) || !(port->tp->t_state & TS_ISOPEN)) { digimodem(port->tp, 0, SER_DTR | SER_RTS); - if (port->dtr_wait != 0) { + if (port->tp->t_dtr_wait != 0) { /* Schedule a wakeup of any callin devices */ port->wopeners++; - timeout(&digidtrwakeup, port, port->dtr_wait); + timeout(&digidtrwakeup, port, port->tp->t_dtr_wait); port->status |= DIGI_DTR_OFF; } } @@ -1282,18 +1281,6 @@ digiioctl(struct cdev *dev, u_long cmd, caddr_t data, int flag, struct thread *t case DIGIIO_RING: port->send_ring = *(u_char *)data; break; - case TIOCMSDTRWAIT: - error = suser(td); - if (error != 0) { - splx(s); - return (error); - } - port->dtr_wait = *(int *)data *hz / 100; - - break; - case TIOCMGDTRWAIT: - *(int *)data = port->dtr_wait * 100 / hz; - break; #ifdef DIGI_INTERRUPT case TIOCTIMESTAMP: *(struct timeval *)data = sc->intr_timestamp; |