On Sun, Sep 19, 2010 at 05:06:28PM +0200, Ed Schouten wrote: > * Kostik Belousov <kostik...@gmail.com> wrote: > > Shouldn't you always report CLOCAL for console then ? > > Hmmm... That would be a lot more elegant, also for callout devices. The > change I just committed, doesn't take a loss of SER_DCD into account > after opening the device. > > Any comments on the following patch? It looks very similar to what I proposed.
Thanks. > > %%% > Index: sys/kern/tty.c > =================================================================== > --- sys/kern/tty.c (revision 212860) > +++ sys/kern/tty.c (working copy) > @@ -263,12 +263,14 @@ > > if (!tty_opened(tp)) { > /* Set proper termios flags. */ > - if (TTY_CALLOUT(tp, dev)) { > + if (TTY_CALLOUT(tp, dev)) > tp->t_termios = tp->t_termios_init_out; > - } else { > + else > tp->t_termios = tp->t_termios_init_in; > - } > ttydevsw_param(tp, &tp->t_termios); > + /* Prevent modem control on callout devices and /dev/console. */ > + if (TTY_CALLOUT(tp, dev) || dev == dev_console) > + tp->t_termios.c_cflag |= CLOCAL; > > ttydevsw_modem(tp, SER_DTR|SER_RTS, 0); > > @@ -281,9 +283,8 @@ > } > > /* Wait for Carrier Detect. */ > - if (!TTY_CALLOUT(tp, dev) && (oflags & O_NONBLOCK) == 0 && > - (tp->t_termios.c_cflag & CLOCAL) == 0 && > - dev != dev_console) { > + if ((oflags & O_NONBLOCK) == 0 && > + (tp->t_termios.c_cflag & CLOCAL) == 0) { > while ((ttydevsw_modem(tp, 0, 0) & SER_DCD) == 0) { > error = tty_wait(tp, &tp->t_dcdwait); > if (error != 0) > %%% > > -- > Ed Schouten <e...@80386.nl> > WWW: http://80386.nl/
pgpvkNHm1HhwG.pgp
Description: PGP signature