* 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? %%% 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/
pgpUVkAIGupj4.pgp
Description: PGP signature