Re: [PATCH] tty: Add EXTPROC support for LINEMODE

From: Howard Chu
Date: Thu Jun 17 2010 - 16:03:14 EST


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/
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/