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/
next prev parent 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