Date: Sun, 19 Sep 2010 18:36:24 +0300 From: Kostik Belousov <kostikbel@gmail.com> To: Ed Schouten <ed@80386.nl> Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r212860 - head/sys/kern Message-ID: <20100919153624.GD2389@deviant.kiev.zoral.com.ua> In-Reply-To: <20100919150628.GN56986@hoeg.nl> References: <201009191421.o8JELdNY004586@svn.freebsd.org> <20100919143047.GB2389@deviant.kiev.zoral.com.ua> <20100919150628.GN56986@hoeg.nl>
next in thread | previous in thread | raw e-mail | index | archive | help
[-- Attachment #1 --]
On Sun, Sep 19, 2010 at 05:06:28PM +0200, Ed Schouten wrote:
> * Kostik Belousov <kostikbel@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 <ed@80386.nl>
> WWW: http://80386.nl/
[-- Attachment #2 --]
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (FreeBSD)
iEYEARECAAYFAkyWLfcACgkQC3+MBN1Mb4i0nwCeP+3QoGQfJ+PaCcY7vm64OVft
pGcAnjXKaxDGDazl3bmpPSTyVeQxOwN5
=TpEh
-----END PGP SIGNATURE-----
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20100919153624.GD2389>
