public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Howard Chu <hyc@symas.com>
To: Alan Cox <alan@lxorguk.ukuu.org.uk>
Cc: linux-kernel@vger.kernel.org, Greg KH <greg@kroah.com>
Subject: Re: [PATCH] tty: Add EXTPROC support for LINEMODE
Date: Tue, 15 Jun 2010 12:54:45 -0700	[thread overview]
Message-ID: <4C17DA85.40803@symas.com> (raw)
In-Reply-To: <20100615202924.24446d28@lxorguk.ukuu.org.uk>

Alan Cox wrote:
>>       bit set, and the data will be the contents of a struct termios.
>>       This allows the process on the server side of the pty to know
>>       when the state of the terminal has changed, and what the new
>>       state is.
>
> First problem - the kernel and user idea of struct termios don't match.

OK, since you mention it again down below I'll respond to this last.

>> diff --git a/arch/alpha/include/asm/termbits.h b/arch/alpha/include/asm/termbits.h
>> index ad854a4..879dd35 100644
>> --- a/arch/alpha/include/asm/termbits.h
>> +++ b/arch/alpha/include/asm/termbits.h
>> @@ -180,6 +180,7 @@ struct ktermios {
>>   #define FLUSHO	0x00800000
>>   #define PENDIN	0x20000000
>>   #define IEXTEN	0x00000400
>> +#define EXTPROC	0x10000000
>
> For Alpha this value should match OSF if possible.

I'm grubbing around looking for a live Alpha system now, doesn't seem likely 
that I'll find one. Not sure what needs to match here, it's also unlikely that 
OSF/1 (or any other SVR4 platform) ever provided a definition for this bit. 
Looking at the telnet README:
 >>>>
This is a distribution of both client and server telnet.  These programs
have been compiled on:
			telnet	telnetd
	BSD 4.4		  x	  x
	BSD 4.3 Reno	  X	  X
	UNICOS 8.0	  X	  X
	UNICOS 7.C	  X	  X
	UNICOS 7.0	  X	  X
	UNICOS 6.1	  X	  X
	BSDI 1.0	  X	  X
	Solaris 2.2       x       x (no linemode in server)
	Solaris 2.3       x       x (no linemode in server)
	SunOs 4.1.3	  X	  X (no linemode in server)
	Ultrix 4.3	  X	  X (no linemode in server)
	DYNIX V3.0.17.9	  X	  X (no linemode in server)
	HP-UX 8.0	  x       x (no linemode in server)
<<<<

I doubt that anyone ever ported this feature over to those OSes.
>
>
>> +			if (cs&  TIOCPKT_IOCTL) {
>> +				c = sizeof(struct termios);
>> +				if (c>  nr)
>> +					c = nr;
>> +				copy_to_user(b, tty->link->termios, c);
>> +				nr -= c;
>> +				b += c;
>> +			}
>
> This is where the wheels come off the bus.
>
> The kernel use struct ktermios which is what tty->link->termios is
>
> The C library presents this via struct termios which is a glibc invention
> dependant on the C library and which is converted by libc from struct
> termios or struct termios2 depending on your C library
>
> How you fix that given a broken by design historic Unix interface which
> pastes arbitary struct termios objects into the data stream is an
> interesting question - doubly so when like most Unixen we have also have
> extended terminal attributes as well (termiox)

Are you suggesting that this is completely unfixable/unworkable? Would it be 
sufficient to use kernel_termios_to_user_termios() ?

-- 
   -- Howard Chu
   CTO, Symas Corp.           http://www.symas.com
   Director, Highland Sun     http://highlandsun.com/hyc/
   Chief Architect, OpenLDAP  http://www.openldap.org/project/

  reply	other threads:[~2010-06-15 19:54 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-06-15 18:56 [PATCH] tty: Add EXTPROC support for LINEMODE hyc
2010-06-15 19:29 ` Alan Cox
2010-06-15 19:54   ` Howard Chu [this message]
2010-06-15 20:23     ` Howard Chu
2010-06-16 15:13       ` Derek Fawcus
2010-06-17 20:02     ` Howard Chu
2010-06-17 20:49       ` Alan Cox
2010-06-17 21:23         ` Howard Chu
2010-06-17 23:43           ` Howard Chu
2010-06-16  1:15   ` Chris Adams
  -- strict thread matches above, loose matches on Subject: below --
2010-06-18 19:45 hyc
2010-06-18 22:20 ` Howard Chu
2010-06-22 15:59 ` Howard Chu
2010-06-22 16:03   ` Greg KH
2010-06-22 17:28   ` Alan Cox

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4C17DA85.40803@symas.com \
    --to=hyc@symas.com \
    --cc=alan@lxorguk.ukuu.org.uk \
    --cc=greg@kroah.com \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox