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: Thu, 17 Jun 2010 13:02:58 -0700 [thread overview]
Message-ID: <4C1A7F72.6020907@symas.com> (raw)
In-Reply-To: <4C17DA85.40803@symas.com>
Ping, any further advice on these issues?
Howard Chu wrote:
> Alan Cox wrote:
>>> 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.
OSF didn't define this flag, nor did it assign that particular bit to any
purpose. Is that good enough?
>>> + 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() ?
>
Actually using kernel_termios_to_user_termios_1(). In all supported
architectures this structure is basically aligned with but smaller than the
userland struct termios. As such it will leave any unused fields unwritten in
the user struct. This usually means it will leave c_ispeed and c_ospeed unset
in the user struct, but that's a don't-care anyway since we're only talking
about ptys here, and changing the speed (besides setting it to zero) is
irrelevant for ptys.
--
-- 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-17 20:03 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
2010-06-15 20:23 ` Howard Chu
2010-06-16 15:13 ` Derek Fawcus
2010-06-17 20:02 ` Howard Chu [this message]
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=4C1A7F72.6020907@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