Skip site navigation (1)Skip section navigation (2)
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

--Rln2GmQ7CFmDhc9B
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

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 ?
>=20
> 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.
>=20
> Any comments on the following patch?
It looks very similar to what I proposed.

Thanks.
>=20
> %%%
> Index: sys/kern/tty.c
> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> --- sys/kern/tty.c	(revision 212860)
> +++ sys/kern/tty.c	(working copy)
> @@ -263,12 +263,14 @@
> =20
>  	if (!tty_opened(tp)) {
>  		/* Set proper termios flags. */
> -		if (TTY_CALLOUT(tp, dev)) {
> +		if (TTY_CALLOUT(tp, dev))
>  			tp->t_termios =3D tp->t_termios_init_out;
> -		} else {
> +		else
>  			tp->t_termios =3D 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 =3D=3D dev_console)
> +			tp->t_termios.c_cflag |=3D CLOCAL;
> =20
>  		ttydevsw_modem(tp, SER_DTR|SER_RTS, 0);
> =20
> @@ -281,9 +283,8 @@
>  	}
> =20
>  	/* Wait for Carrier Detect. */
> -	if (!TTY_CALLOUT(tp, dev) && (oflags & O_NONBLOCK) =3D=3D 0 &&
> -	    (tp->t_termios.c_cflag & CLOCAL) =3D=3D 0 &&
> -	    dev !=3D dev_console) {
> +	if ((oflags & O_NONBLOCK) =3D=3D 0 &&
> +	    (tp->t_termios.c_cflag & CLOCAL) =3D=3D 0) {
>  		while ((ttydevsw_modem(tp, 0, 0) & SER_DCD) =3D=3D 0) {
>  			error =3D tty_wait(tp, &tp->t_dcdwait);
>  			if (error !=3D 0)
> %%%
>=20
> --=20
>  Ed Schouten <ed@80386.nl>
>  WWW: http://80386.nl/



--Rln2GmQ7CFmDhc9B
Content-Type: application/pgp-signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (FreeBSD)

iEYEARECAAYFAkyWLfcACgkQC3+MBN1Mb4i0nwCeP+3QoGQfJ+PaCcY7vm64OVft
pGcAnjXKaxDGDazl3bmpPSTyVeQxOwN5
=TpEh
-----END PGP SIGNATURE-----

--Rln2GmQ7CFmDhc9B--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20100919153624.GD2389>