aboutsummaryrefslogtreecommitdiffstats
path: root/arch/ia64/include
diff options
context:
space:
mode:
authorhyc@symas.com <hyc@symas.com>2010-06-22 13:14:49 -0400
committerGreg Kroah-Hartman <gregkh@suse.de>2010-08-10 16:47:39 -0400
commit26df6d13406d1a53b0bda08bd712f1924affd7cd (patch)
treedb17328acbd7cac9dc20bc854509527c1c89ca01 /arch/ia64/include
parenta3c8ed693da9782f924223f65da9261da796e49b (diff)
tty: Add EXTPROC support for LINEMODE
This patch is against the 2.6.34 source. Paraphrased from the 1989 BSD patch by David Borman @ cray.com: These are the changes needed for the kernel to support LINEMODE in the server. There is a new bit in the termios local flag word, EXTPROC. When this bit is set, several aspects of the terminal driver are disabled. Input line editing, character echo, and mapping of signals are all disabled. This allows the telnetd to turn off these functions when in linemode, but still keep track of what state the user wants the terminal to be in. New ioctl: TIOCSIG Generate a signal to processes in the current process group of the pty. There is a new mode for packet driver, the TIOCPKT_IOCTL bit. When packet mode is turned on in the pty, and the EXTPROC bit is set, then whenever the state of the pty is changed, the next read on the master side of the pty will have the TIOCPKT_IOCTL bit set. This allows the process on the server side of the pty to know when the state of the terminal has changed; it can then issue the appropriate ioctl to retrieve the new state. Since the original BSD patches accompanied the source code for telnet I've left that reference here, but obviously the feature is useful for any remote terminal protocol, including ssh. The corresponding feature has existed in the BSD tty driver since 1989. For historical reference, a good copy of the relevant files can be found here: http://anonsvn.mit.edu/viewvc/krb5/trunk/src/appl/telnet/?pathrev=17741 Signed-off-by: Howard Chu <hyc@symas.com> Cc: Alan Cox <alan@lxorguk.ukuu.org.uk> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'arch/ia64/include')
-rw-r--r--arch/ia64/include/asm/ioctls.h2
-rw-r--r--arch/ia64/include/asm/termbits.h1
2 files changed, 3 insertions, 0 deletions
diff --git a/arch/ia64/include/asm/ioctls.h b/arch/ia64/include/asm/ioctls.h
index f0ee86c0b5f7..b79c385114ef 100644
--- a/arch/ia64/include/asm/ioctls.h
+++ b/arch/ia64/include/asm/ioctls.h
@@ -59,6 +59,7 @@
59#define TCSETSF2 _IOW('T',0x2D, struct termios2) 59#define TCSETSF2 _IOW('T',0x2D, struct termios2)
60#define TIOCGPTN _IOR('T',0x30, unsigned int) /* Get Pty Number (of pty-mux device) */ 60#define TIOCGPTN _IOR('T',0x30, unsigned int) /* Get Pty Number (of pty-mux device) */
61#define TIOCSPTLCK _IOW('T',0x31, int) /* Lock/unlock Pty */ 61#define TIOCSPTLCK _IOW('T',0x31, int) /* Lock/unlock Pty */
62#define TIOCSIG _IOW('T',0x36, int) /* Generate signal on Pty slave */
62 63
63#define FIONCLEX 0x5450 /* these numbers need to be adjusted. */ 64#define FIONCLEX 0x5450 /* these numbers need to be adjusted. */
64#define FIOCLEX 0x5451 65#define FIOCLEX 0x5451
@@ -85,6 +86,7 @@
85#define TIOCPKT_START 8 86#define TIOCPKT_START 8
86#define TIOCPKT_NOSTOP 16 87#define TIOCPKT_NOSTOP 16
87#define TIOCPKT_DOSTOP 32 88#define TIOCPKT_DOSTOP 32
89#define TIOCPKT_IOCTL 64
88 90
89#define TIOCSER_TEMT 0x01 /* Transmitter physically empty */ 91#define TIOCSER_TEMT 0x01 /* Transmitter physically empty */
90 92
diff --git a/arch/ia64/include/asm/termbits.h b/arch/ia64/include/asm/termbits.h
index 9f162e0089ad..c009b94e58d9 100644
--- a/arch/ia64/include/asm/termbits.h
+++ b/arch/ia64/include/asm/termbits.h
@@ -187,6 +187,7 @@ struct ktermios {
187#define FLUSHO 0010000 187#define FLUSHO 0010000
188#define PENDIN 0040000 188#define PENDIN 0040000
189#define IEXTEN 0100000 189#define IEXTEN 0100000
190#define EXTPROC 0200000
190 191
191/* tcflow() and TCXONC use these */ 192/* tcflow() and TCXONC use these */
192#define TCOOFF 0 193#define TCOOFF 0