public inbox for linux-serial@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] tty: preparatory structures for termios revamp
@ 2006-10-18 17:39 Alan Cox
  2006-10-19  6:45 ` David Woodhouse
  0 siblings, 1 reply; 2+ messages in thread
From: Alan Cox @ 2006-10-18 17:39 UTC (permalink / raw)
  To: akpm, linux-kernel, linux-serial

In order to sort out our struct termios and add proper speed control we
need to separate the kernel and user termios structures. Glibc is fine
but the other libraries rely on the kernel exported struct termios and
we need to extend this without breaking the ABI/API

To do so we add a struct ktermios which is the kernel view of a termios
structure and overlaps the struct termios with extra fields on the end
for now. (That limitation will go away in later patches). Some platforms
(eg alpha) planned ahead and thus use the same struct for both, others
did not.


This just adds the structures but does not use them, it seems a sensible
splitting point for bisect if there are compile failures (not that I
expect them)

Signed-off-by: Alan Cox <alan@redhat.com>

diff -u --new-file --recursive --exclude-from /usr/src/exclude linux.vanilla-2.6.19-rc2-mm1/include/asm-alpha/termbits.h linux-2.6.19-rc2-mm1/include/asm-alpha/termbits.h
--- linux.vanilla-2.6.19-rc2-mm1/include/asm-alpha/termbits.h	2006-10-13 15:07:03.000000000 +0100
+++ linux-2.6.19-rc2-mm1/include/asm-alpha/termbits.h	2006-10-18 14:27:43.000000000 +0100
@@ -25,6 +25,19 @@
 	speed_t c_ospeed;		/* output speed */
 };
 
+/* Alpha has matching termios and ktermios */
+
+struct ktermios {
+	tcflag_t c_iflag;		/* input mode flags */
+	tcflag_t c_oflag;		/* output mode flags */
+	tcflag_t c_cflag;		/* control mode flags */
+	tcflag_t c_lflag;		/* local mode flags */
+	cc_t c_cc[NCCS];		/* control characters */
+	cc_t c_line;			/* line discipline (== c_cc[19]) */
+	speed_t c_ispeed;		/* input speed */
+	speed_t c_ospeed;		/* output speed */
+};
+
 /* c_cc characters */
 #define VEOF 0
 #define VEOL 1
diff -u --new-file --recursive --exclude-from /usr/src/exclude linux.vanilla-2.6.19-rc2-mm1/include/asm-arm/termbits.h linux-2.6.19-rc2-mm1/include/asm-arm/termbits.h
--- linux.vanilla-2.6.19-rc2-mm1/include/asm-arm/termbits.h	2006-10-13 15:07:04.000000000 +0100
+++ linux-2.6.19-rc2-mm1/include/asm-arm/termbits.h	2006-10-18 14:28:52.000000000 +0100
@@ -15,6 +15,18 @@
 	cc_t c_cc[NCCS];		/* control characters */
 };
 
+struct ktermios {
+	tcflag_t c_iflag;		/* input mode flags */
+	tcflag_t c_oflag;		/* output mode flags */
+	tcflag_t c_cflag;		/* control mode flags */
+	tcflag_t c_lflag;		/* local mode flags */
+	cc_t c_line;			/* line discipline */
+	cc_t c_cc[NCCS];		/* control characters */
+	speed_t c_ispeed;		/* input speed */
+	speed_t c_ospeed;		/* output speed */
+};
+
+
 /* c_cc characters */
 #define VINTR 0
 #define VQUIT 1
diff -u --new-file --recursive --exclude-from /usr/src/exclude linux.vanilla-2.6.19-rc2-mm1/include/asm-arm26/termbits.h linux-2.6.19-rc2-mm1/include/asm-arm26/termbits.h
--- linux.vanilla-2.6.19-rc2-mm1/include/asm-arm26/termbits.h	2006-10-13 15:07:04.000000000 +0100
+++ linux-2.6.19-rc2-mm1/include/asm-arm26/termbits.h	2006-10-18 14:29:23.000000000 +0100
@@ -15,6 +15,18 @@
 	cc_t c_cc[NCCS];		/* control characters */
 };
 
+struct ktermios {
+	tcflag_t c_iflag;		/* input mode flags */
+	tcflag_t c_oflag;		/* output mode flags */
+	tcflag_t c_cflag;		/* control mode flags */
+	tcflag_t c_lflag;		/* local mode flags */
+	cc_t c_line;			/* line discipline */
+	cc_t c_cc[NCCS];		/* control characters */
+	speed_t c_ispeed;		/* input speed */
+	speed_t c_ospeed;		/* output speed */
+};
+
+
 /* c_cc characters */
 #define VINTR 0
 #define VQUIT 1
diff -u --new-file --recursive --exclude-from /usr/src/exclude linux.vanilla-2.6.19-rc2-mm1/include/asm-avr32/termbits.h linux-2.6.19-rc2-mm1/include/asm-avr32/termbits.h
--- linux.vanilla-2.6.19-rc2-mm1/include/asm-avr32/termbits.h	2006-10-18 13:50:25.000000000 +0100
+++ linux-2.6.19-rc2-mm1/include/asm-avr32/termbits.h	2006-10-18 14:29:47.000000000 +0100
@@ -17,6 +17,17 @@
 	cc_t c_cc[NCCS];		/* control characters */
 };
 
+struct ktermios {
+	tcflag_t c_iflag;		/* input mode flags */
+	tcflag_t c_oflag;		/* output mode flags */
+	tcflag_t c_cflag;		/* control mode flags */
+	tcflag_t c_lflag;		/* local mode flags */
+	cc_t c_line;			/* line discipline */
+	cc_t c_cc[NCCS];		/* control characters */
+	speed_t c_ispeed;		/* input speed */
+	speed_t c_ospeed;		/* output speed */
+};
+
 /* c_cc characters */
 #define VINTR 0
 #define VQUIT 1
diff -u --new-file --recursive --exclude-from /usr/src/exclude linux.vanilla-2.6.19-rc2-mm1/include/asm-cris/termbits.h linux-2.6.19-rc2-mm1/include/asm-cris/termbits.h
--- linux.vanilla-2.6.19-rc2-mm1/include/asm-cris/termbits.h	2006-10-13 15:07:04.000000000 +0100
+++ linux-2.6.19-rc2-mm1/include/asm-cris/termbits.h	2006-10-18 14:30:08.000000000 +0100
@@ -19,6 +19,17 @@
 	cc_t c_cc[NCCS];		/* control characters */
 };
 
+struct ktermios {
+	tcflag_t c_iflag;		/* input mode flags */
+	tcflag_t c_oflag;		/* output mode flags */
+	tcflag_t c_cflag;		/* control mode flags */
+	tcflag_t c_lflag;		/* local mode flags */
+	cc_t c_line;			/* line discipline */
+	cc_t c_cc[NCCS];		/* control characters */
+	speed_t c_ispeed;		/* input speed */
+	speed_t c_ospeed;		/* output speed */
+};
+
 /* c_cc characters */
 #define VINTR 0
 #define VQUIT 1
diff -u --new-file --recursive --exclude-from /usr/src/exclude linux.vanilla-2.6.19-rc2-mm1/include/asm-frv/termbits.h linux-2.6.19-rc2-mm1/include/asm-frv/termbits.h
--- linux.vanilla-2.6.19-rc2-mm1/include/asm-frv/termbits.h	2006-10-13 15:07:04.000000000 +0100
+++ linux-2.6.19-rc2-mm1/include/asm-frv/termbits.h	2006-10-18 14:30:33.000000000 +0100
@@ -17,6 +17,17 @@
 	cc_t c_cc[NCCS];		/* control characters */
 };
 
+struct ktermios {
+	tcflag_t c_iflag;		/* input mode flags */
+	tcflag_t c_oflag;		/* output mode flags */
+	tcflag_t c_cflag;		/* control mode flags */
+	tcflag_t c_lflag;		/* local mode flags */
+	cc_t c_line;			/* line discipline */
+	cc_t c_cc[NCCS];		/* control characters */
+	speed_t c_ispeed;		/* input speed */
+	speed_t c_ospeed;		/* output speed */
+};
+
 /* c_cc characters */
 #define VINTR 0
 #define VQUIT 1
diff -u --new-file --recursive --exclude-from /usr/src/exclude linux.vanilla-2.6.19-rc2-mm1/include/asm-h8300/termbits.h linux-2.6.19-rc2-mm1/include/asm-h8300/termbits.h
--- linux.vanilla-2.6.19-rc2-mm1/include/asm-h8300/termbits.h	2006-10-13 15:07:04.000000000 +0100
+++ linux-2.6.19-rc2-mm1/include/asm-h8300/termbits.h	2006-10-18 14:31:14.000000000 +0100
@@ -17,6 +17,17 @@
 	cc_t c_cc[NCCS];		/* control characters */
 };
 
+struct ktermios {
+	tcflag_t c_iflag;		/* input mode flags */
+	tcflag_t c_oflag;		/* output mode flags */
+	tcflag_t c_cflag;		/* control mode flags */
+	tcflag_t c_lflag;		/* local mode flags */
+	cc_t c_line;			/* line discipline */
+	cc_t c_cc[NCCS];		/* control characters */
+	speed_t c_ispeed;		/* input speed */
+	speed_t c_ospeed;		/* output speed */
+};
+
 /* c_cc characters */
 #define VINTR 0
 #define VQUIT 1
diff -u --new-file --recursive --exclude-from /usr/src/exclude linux.vanilla-2.6.19-rc2-mm1/include/asm-i386/termbits.h linux-2.6.19-rc2-mm1/include/asm-i386/termbits.h
--- linux.vanilla-2.6.19-rc2-mm1/include/asm-i386/termbits.h	2006-10-13 15:07:05.000000000 +0100
+++ linux-2.6.19-rc2-mm1/include/asm-i386/termbits.h	2006-10-18 14:31:44.000000000 +0100
@@ -17,6 +17,17 @@
 	cc_t c_cc[NCCS];		/* control characters */
 };
 
+struct ktermios {
+	tcflag_t c_iflag;		/* input mode flags */
+	tcflag_t c_oflag;		/* output mode flags */
+	tcflag_t c_cflag;		/* control mode flags */
+	tcflag_t c_lflag;		/* local mode flags */
+	cc_t c_line;			/* line discipline */
+	cc_t c_cc[NCCS];		/* control characters */
+	speed_t c_ispeed;		/* input speed */
+	speed_t c_ospeed;		/* output speed */
+};
+
 /* c_cc characters */
 #define VINTR 0
 #define VQUIT 1
diff -u --new-file --recursive --exclude-from /usr/src/exclude linux.vanilla-2.6.19-rc2-mm1/include/asm-ia64/termbits.h linux-2.6.19-rc2-mm1/include/asm-ia64/termbits.h
--- linux.vanilla-2.6.19-rc2-mm1/include/asm-ia64/termbits.h	2006-10-13 15:07:05.000000000 +0100
+++ linux-2.6.19-rc2-mm1/include/asm-ia64/termbits.h	2006-10-18 14:32:11.000000000 +0100
@@ -26,6 +26,17 @@
 	cc_t c_cc[NCCS];		/* control characters */
 };
 
+struct ktermios {
+	tcflag_t c_iflag;		/* input mode flags */
+	tcflag_t c_oflag;		/* output mode flags */
+	tcflag_t c_cflag;		/* control mode flags */
+	tcflag_t c_lflag;		/* local mode flags */
+	cc_t c_line;			/* line discipline */
+	cc_t c_cc[NCCS];		/* control characters */
+	speed_t c_ispeed;		/* input speed */
+	speed_t c_ospeed;		/* output speed */
+};
+
 /* c_cc characters */
 #define VINTR 0
 #define VQUIT 1
diff -u --new-file --recursive --exclude-from /usr/src/exclude linux.vanilla-2.6.19-rc2-mm1/include/asm-m32r/termbits.h linux-2.6.19-rc2-mm1/include/asm-m32r/termbits.h
--- linux.vanilla-2.6.19-rc2-mm1/include/asm-m32r/termbits.h	2006-10-13 15:07:05.000000000 +0100
+++ linux-2.6.19-rc2-mm1/include/asm-m32r/termbits.h	2006-10-18 14:32:51.000000000 +0100
@@ -19,6 +19,17 @@
 	cc_t c_cc[NCCS];		/* control characters */
 };
 
+struct ktermios {
+	tcflag_t c_iflag;		/* input mode flags */
+	tcflag_t c_oflag;		/* output mode flags */
+	tcflag_t c_cflag;		/* control mode flags */
+	tcflag_t c_lflag;		/* local mode flags */
+	cc_t c_line;			/* line discipline */
+	cc_t c_cc[NCCS];		/* control characters */
+	speed_t c_ispeed;		/* input speed */
+	speed_t c_ospeed;		/* output speed */
+};
+
 /* c_cc characters */
 #define VINTR 0
 #define VQUIT 1
diff -u --new-file --recursive --exclude-from /usr/src/exclude linux.vanilla-2.6.19-rc2-mm1/include/asm-m68k/termbits.h linux-2.6.19-rc2-mm1/include/asm-m68k/termbits.h
--- linux.vanilla-2.6.19-rc2-mm1/include/asm-m68k/termbits.h	2006-10-13 15:07:05.000000000 +0100
+++ linux-2.6.19-rc2-mm1/include/asm-m68k/termbits.h	2006-10-18 14:33:07.000000000 +0100
@@ -17,6 +17,17 @@
 	cc_t c_cc[NCCS];		/* control characters */
 };
 
+struct ktermios {
+	tcflag_t c_iflag;		/* input mode flags */
+	tcflag_t c_oflag;		/* output mode flags */
+	tcflag_t c_cflag;		/* control mode flags */
+	tcflag_t c_lflag;		/* local mode flags */
+	cc_t c_line;			/* line discipline */
+	cc_t c_cc[NCCS];		/* control characters */
+	speed_t c_ispeed;		/* input speed */
+	speed_t c_ospeed;		/* output speed */
+};
+
 /* c_cc characters */
 #define VINTR 0
 #define VQUIT 1
diff -u --new-file --recursive --exclude-from /usr/src/exclude linux.vanilla-2.6.19-rc2-mm1/include/asm-mips/termbits.h linux-2.6.19-rc2-mm1/include/asm-mips/termbits.h
--- linux.vanilla-2.6.19-rc2-mm1/include/asm-mips/termbits.h	2006-10-18 13:50:25.000000000 +0100
+++ linux-2.6.19-rc2-mm1/include/asm-mips/termbits.h	2006-10-18 14:34:08.000000000 +0100
@@ -30,6 +30,17 @@
 	cc_t c_cc[NCCS];		/* control characters */
 };
 
+struct ktermios {
+	tcflag_t c_iflag;		/* input mode flags */
+	tcflag_t c_oflag;		/* output mode flags */
+	tcflag_t c_cflag;		/* control mode flags */
+	tcflag_t c_lflag;		/* local mode flags */
+	cc_t c_line;			/* line discipline */
+	cc_t c_cc[NCCS];		/* control characters */
+	speed_t c_ispeed;		/* input speed */
+	speed_t c_ospeed;		/* output speed */
+};
+
 /* c_cc characters */
 #define VINTR		 0		/* Interrupt character [ISIG].  */
 #define VQUIT		 1		/* Quit character [ISIG].  */
diff -u --new-file --recursive --exclude-from /usr/src/exclude linux.vanilla-2.6.19-rc2-mm1/include/asm-parisc/termbits.h linux-2.6.19-rc2-mm1/include/asm-parisc/termbits.h
--- linux.vanilla-2.6.19-rc2-mm1/include/asm-parisc/termbits.h	2006-10-13 15:07:08.000000000 +0100
+++ linux-2.6.19-rc2-mm1/include/asm-parisc/termbits.h	2006-10-18 14:34:43.000000000 +0100
@@ -17,6 +17,17 @@
 	cc_t c_cc[NCCS];		/* control characters */
 };
 
+struct ktermios {
+	tcflag_t c_iflag;		/* input mode flags */
+	tcflag_t c_oflag;		/* output mode flags */
+	tcflag_t c_cflag;		/* control mode flags */
+	tcflag_t c_lflag;		/* local mode flags */
+	cc_t c_line;			/* line discipline */
+	cc_t c_cc[NCCS];		/* control characters */
+	speed_t c_ispeed;		/* input speed */
+	speed_t c_ospeed;		/* output speed */
+};
+
 /* c_cc characters */
 #define VINTR 0
 #define VQUIT 1
diff -u --new-file --recursive --exclude-from /usr/src/exclude linux.vanilla-2.6.19-rc2-mm1/include/asm-powerpc/termbits.h linux-2.6.19-rc2-mm1/include/asm-powerpc/termbits.h
--- linux.vanilla-2.6.19-rc2-mm1/include/asm-powerpc/termbits.h	2006-10-13 15:07:08.000000000 +0100
+++ linux-2.6.19-rc2-mm1/include/asm-powerpc/termbits.h	2006-10-18 14:35:14.000000000 +0100
@@ -30,6 +30,19 @@
 	speed_t c_ospeed;		/* output speed */
 };
 
+/* For PowerPC the termios and ktermios are the same */
+
+struct ktermios {
+	tcflag_t c_iflag;		/* input mode flags */
+	tcflag_t c_oflag;		/* output mode flags */
+	tcflag_t c_cflag;		/* control mode flags */
+	tcflag_t c_lflag;		/* local mode flags */
+	cc_t c_line;			/* line discipline */
+	cc_t c_cc[NCCS];		/* control characters */
+	speed_t c_ispeed;		/* input speed */
+	speed_t c_ospeed;		/* output speed */
+};
+
 /* c_cc characters */
 #define VINTR 	         0
 #define VQUIT 	         1
diff -u --new-file --recursive --exclude-from /usr/src/exclude linux.vanilla-2.6.19-rc2-mm1/include/asm-s390/termbits.h linux-2.6.19-rc2-mm1/include/asm-s390/termbits.h
--- linux.vanilla-2.6.19-rc2-mm1/include/asm-s390/termbits.h	2006-10-13 15:07:08.000000000 +0100
+++ linux-2.6.19-rc2-mm1/include/asm-s390/termbits.h	2006-10-18 14:35:50.000000000 +0100
@@ -25,6 +25,17 @@
 	cc_t c_cc[NCCS];		/* control characters */
 };
 
+struct ktermios {
+	tcflag_t c_iflag;		/* input mode flags */
+	tcflag_t c_oflag;		/* output mode flags */
+	tcflag_t c_cflag;		/* control mode flags */
+	tcflag_t c_lflag;		/* local mode flags */
+	cc_t c_line;			/* line discipline */
+	cc_t c_cc[NCCS];		/* control characters */
+	speed_t c_ispeed;		/* input speed */
+	speed_t c_ospeed;		/* output speed */
+};
+
 /* c_cc characters */
 #define VINTR 0
 #define VQUIT 1
diff -u --new-file --recursive --exclude-from /usr/src/exclude linux.vanilla-2.6.19-rc2-mm1/include/asm-sh/termbits.h linux-2.6.19-rc2-mm1/include/asm-sh/termbits.h
--- linux.vanilla-2.6.19-rc2-mm1/include/asm-sh/termbits.h	2006-10-13 15:07:09.000000000 +0100
+++ linux-2.6.19-rc2-mm1/include/asm-sh/termbits.h	2006-10-18 14:36:15.000000000 +0100
@@ -17,6 +17,17 @@
 	cc_t c_cc[NCCS];		/* control characters */
 };
 
+struct ktermios {
+	tcflag_t c_iflag;		/* input mode flags */
+	tcflag_t c_oflag;		/* output mode flags */
+	tcflag_t c_cflag;		/* control mode flags */
+	tcflag_t c_lflag;		/* local mode flags */
+	cc_t c_line;			/* line discipline */
+	cc_t c_cc[NCCS];		/* control characters */
+	speed_t c_ispeed;		/* input speed */
+	speed_t c_ospeed;		/* output speed */
+};
+
 /* c_cc characters */
 #define VINTR 0
 #define VQUIT 1
diff -u --new-file --recursive --exclude-from /usr/src/exclude linux.vanilla-2.6.19-rc2-mm1/include/asm-sparc/termbits.h linux-2.6.19-rc2-mm1/include/asm-sparc/termbits.h
--- linux.vanilla-2.6.19-rc2-mm1/include/asm-sparc/termbits.h	2006-10-13 15:07:09.000000000 +0100
+++ linux-2.6.19-rc2-mm1/include/asm-sparc/termbits.h	2006-10-18 14:48:38.000000000 +0100
@@ -31,6 +31,18 @@
 #endif
 };
 
+struct ktermios {
+	tcflag_t c_iflag;		/* input mode flags */
+	tcflag_t c_oflag;		/* output mode flags */
+	tcflag_t c_cflag;		/* control mode flags */
+	tcflag_t c_lflag;		/* local mode flags */
+	cc_t c_line;			/* line discipline */
+	cc_t c_cc[NCCS];		/* control characters */
+	cc_t _x_cc[2];                  /* We need them to hold vmin/vtime */
+	speed_t c_ispeed;		/* input speed */
+	speed_t c_ospeed;		/* output speed */
+};
+
 /* c_cc characters */
 #define VINTR    0
 #define VQUIT    1
diff -u --new-file --recursive --exclude-from /usr/src/exclude linux.vanilla-2.6.19-rc2-mm1/include/asm-sparc64/termbits.h linux-2.6.19-rc2-mm1/include/asm-sparc64/termbits.h
--- linux.vanilla-2.6.19-rc2-mm1/include/asm-sparc64/termbits.h	2006-10-13 15:07:09.000000000 +0100
+++ linux-2.6.19-rc2-mm1/include/asm-sparc64/termbits.h	2006-10-18 14:48:58.000000000 +0100
@@ -33,6 +33,18 @@
 #endif
 };
 
+struct ktermios {
+	tcflag_t c_iflag;		/* input mode flags */
+	tcflag_t c_oflag;		/* output mode flags */
+	tcflag_t c_cflag;		/* control mode flags */
+	tcflag_t c_lflag;		/* local mode flags */
+	cc_t c_line;			/* line discipline */
+	cc_t c_cc[NCCS];		/* control characters */
+	cc_t _x_cc[2];                  /* We need them to hold vmin/vtime */
+	speed_t c_ispeed;		/* input speed */
+	speed_t c_ospeed;		/* output speed */
+};
+
 /* c_cc characters */
 #define VINTR    0
 #define VQUIT    1
diff -u --new-file --recursive --exclude-from /usr/src/exclude linux.vanilla-2.6.19-rc2-mm1/include/asm-v850/termbits.h linux-2.6.19-rc2-mm1/include/asm-v850/termbits.h
--- linux.vanilla-2.6.19-rc2-mm1/include/asm-v850/termbits.h	2006-10-13 15:07:09.000000000 +0100
+++ linux-2.6.19-rc2-mm1/include/asm-v850/termbits.h	2006-10-18 14:38:03.000000000 +0100
@@ -17,6 +17,17 @@
 	cc_t c_cc[NCCS];		/* control characters */
 };
 
+struct ktermios {
+	tcflag_t c_iflag;		/* input mode flags */
+	tcflag_t c_oflag;		/* output mode flags */
+	tcflag_t c_cflag;		/* control mode flags */
+	tcflag_t c_lflag;		/* local mode flags */
+	cc_t c_line;			/* line discipline */
+	cc_t c_cc[NCCS];		/* control characters */
+	speed_t c_ispeed;		/* input speed */
+	speed_t c_ospeed;		/* output speed */
+};
+
 /* c_cc characters */
 #define VINTR 0
 #define VQUIT 1
diff -u --new-file --recursive --exclude-from /usr/src/exclude linux.vanilla-2.6.19-rc2-mm1/include/asm-x86_64/termbits.h linux-2.6.19-rc2-mm1/include/asm-x86_64/termbits.h
--- linux.vanilla-2.6.19-rc2-mm1/include/asm-x86_64/termbits.h	2006-10-13 15:07:09.000000000 +0100
+++ linux-2.6.19-rc2-mm1/include/asm-x86_64/termbits.h	2006-10-18 14:11:14.000000000 +0100
@@ -17,6 +17,17 @@
 	cc_t c_cc[NCCS];		/* control characters */
 };
 
+struct ktermios {
+	tcflag_t c_iflag;		/* input mode flags */
+	tcflag_t c_oflag;		/* output mode flags */
+	tcflag_t c_cflag;		/* control mode flags */
+	tcflag_t c_lflag;		/* local mode flags */
+	cc_t c_line;			/* line discipline */
+	cc_t c_cc[NCCS];		/* control characters */
+	speed_t c_ispeed;		/* input speed */
+	speed_t c_ospeed;		/* output speed */
+};
+
 /* c_cc characters */
 #define VINTR 0
 #define VQUIT 1


^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [PATCH] tty: preparatory structures for termios revamp
  2006-10-18 17:39 [PATCH] tty: preparatory structures for termios revamp Alan Cox
@ 2006-10-19  6:45 ` David Woodhouse
  0 siblings, 0 replies; 2+ messages in thread
From: David Woodhouse @ 2006-10-19  6:45 UTC (permalink / raw)
  To: Alan Cox; +Cc: akpm, linux-kernel, linux-serial

On Wed, 2006-10-18 at 18:39 +0100, Alan Cox wrote:
> In order to sort out our struct termios and add proper speed control we
> need to separate the kernel and user termios structures. Glibc is fine
> but the other libraries rely on the kernel exported struct termios and
> we need to extend this without breaking the ABI/API
> 
> To do so we add a struct ktermios which is the kernel view of a termios
> structure and overlaps the struct termios with extra fields on the end
> for now. (That limitation will go away in later patches). Some platforms
> (eg alpha) planned ahead and thus use the same struct for both, others
> did not.
> 
> 
> This just adds the structures but does not use them, it seems a sensible
> splitting point for bisect if there are compile failures (not that I
> expect them) 

Why have separate copies of almost identical structures in each
architecture -- can we not put the new structure in
asm-generic/termbits.h and use that for all but SPARC, which has the
extra _x_cc field?

-- 
dwmw2


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2006-10-19  6:45 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-10-18 17:39 [PATCH] tty: preparatory structures for termios revamp Alan Cox
2006-10-19  6:45 ` David Woodhouse

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox