| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | #ifndef _ALPHA_TERMBITS_H
 | 
					
						
							|  |  |  | #define _ALPHA_TERMBITS_H
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #include <linux/posix_types.h>
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | typedef unsigned char	cc_t; | 
					
						
							|  |  |  | typedef unsigned int	speed_t; | 
					
						
							|  |  |  | typedef unsigned int	tcflag_t; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /*
 | 
					
						
							|  |  |  |  * termios type and macro definitions.  Be careful about adding stuff | 
					
						
							|  |  |  |  * to this file since it's used in GNU libc and there are strict rules | 
					
						
							|  |  |  |  * concerning namespace pollution. | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #define NCCS 19
 | 
					
						
							|  |  |  | struct termios { | 
					
						
							|  |  |  | 	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 */ | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2006-12-08 02:38:43 -08:00
										 |  |  | /* 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 */ | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | /* c_cc characters */ | 
					
						
							|  |  |  | #define VEOF 0
 | 
					
						
							|  |  |  | #define VEOL 1
 | 
					
						
							|  |  |  | #define VEOL2 2
 | 
					
						
							|  |  |  | #define VERASE 3
 | 
					
						
							|  |  |  | #define VWERASE 4
 | 
					
						
							|  |  |  | #define VKILL 5
 | 
					
						
							|  |  |  | #define VREPRINT 6
 | 
					
						
							|  |  |  | #define VSWTC 7
 | 
					
						
							|  |  |  | #define VINTR 8
 | 
					
						
							|  |  |  | #define VQUIT 9
 | 
					
						
							|  |  |  | #define VSUSP 10
 | 
					
						
							|  |  |  | #define VSTART 12
 | 
					
						
							|  |  |  | #define VSTOP 13
 | 
					
						
							|  |  |  | #define VLNEXT 14
 | 
					
						
							|  |  |  | #define VDISCARD 15
 | 
					
						
							|  |  |  | #define VMIN 16
 | 
					
						
							|  |  |  | #define VTIME 17
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* c_iflag bits */ | 
					
						
							|  |  |  | #define IGNBRK	0000001
 | 
					
						
							|  |  |  | #define BRKINT	0000002
 | 
					
						
							|  |  |  | #define IGNPAR	0000004
 | 
					
						
							|  |  |  | #define PARMRK	0000010
 | 
					
						
							|  |  |  | #define INPCK	0000020
 | 
					
						
							|  |  |  | #define ISTRIP	0000040
 | 
					
						
							|  |  |  | #define INLCR	0000100
 | 
					
						
							|  |  |  | #define IGNCR	0000200
 | 
					
						
							|  |  |  | #define ICRNL	0000400
 | 
					
						
							|  |  |  | #define IXON	0001000
 | 
					
						
							|  |  |  | #define IXOFF	0002000
 | 
					
						
							|  |  |  | #define IXANY	0004000
 | 
					
						
							|  |  |  | #define IUCLC	0010000
 | 
					
						
							|  |  |  | #define IMAXBEL	0020000
 | 
					
						
							|  |  |  | #define IUTF8	0040000
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* c_oflag bits */ | 
					
						
							|  |  |  | #define OPOST	0000001
 | 
					
						
							|  |  |  | #define ONLCR	0000002
 | 
					
						
							|  |  |  | #define OLCUC	0000004
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #define OCRNL	0000010
 | 
					
						
							|  |  |  | #define ONOCR	0000020
 | 
					
						
							|  |  |  | #define ONLRET	0000040
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #define OFILL	00000100
 | 
					
						
							|  |  |  | #define OFDEL	00000200
 | 
					
						
							|  |  |  | #define NLDLY	00001400
 | 
					
						
							|  |  |  | #define   NL0	00000000
 | 
					
						
							|  |  |  | #define   NL1	00000400
 | 
					
						
							|  |  |  | #define   NL2	00001000
 | 
					
						
							|  |  |  | #define   NL3	00001400
 | 
					
						
							|  |  |  | #define TABDLY	00006000
 | 
					
						
							|  |  |  | #define   TAB0	00000000
 | 
					
						
							|  |  |  | #define   TAB1	00002000
 | 
					
						
							|  |  |  | #define   TAB2	00004000
 | 
					
						
							|  |  |  | #define   TAB3	00006000
 | 
					
						
							|  |  |  | #define CRDLY	00030000
 | 
					
						
							|  |  |  | #define   CR0	00000000
 | 
					
						
							|  |  |  | #define   CR1	00010000
 | 
					
						
							|  |  |  | #define   CR2	00020000
 | 
					
						
							|  |  |  | #define   CR3	00030000
 | 
					
						
							|  |  |  | #define FFDLY	00040000
 | 
					
						
							|  |  |  | #define   FF0	00000000
 | 
					
						
							|  |  |  | #define   FF1	00040000
 | 
					
						
							|  |  |  | #define BSDLY	00100000
 | 
					
						
							|  |  |  | #define   BS0	00000000
 | 
					
						
							|  |  |  | #define   BS1	00100000
 | 
					
						
							|  |  |  | #define VTDLY	00200000
 | 
					
						
							|  |  |  | #define   VT0	00000000
 | 
					
						
							|  |  |  | #define   VT1	00200000
 | 
					
						
							|  |  |  | #define XTABS	01000000 /* Hmm.. Linux/i386 considers this part of TABDLY.. */
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* c_cflag bit meaning */ | 
					
						
							|  |  |  | #define CBAUD	0000037
 | 
					
						
							|  |  |  | #define  B0	0000000		/* hang up */
 | 
					
						
							|  |  |  | #define  B50	0000001
 | 
					
						
							|  |  |  | #define  B75	0000002
 | 
					
						
							|  |  |  | #define  B110	0000003
 | 
					
						
							|  |  |  | #define  B134	0000004
 | 
					
						
							|  |  |  | #define  B150	0000005
 | 
					
						
							|  |  |  | #define  B200	0000006
 | 
					
						
							|  |  |  | #define  B300	0000007
 | 
					
						
							|  |  |  | #define  B600	0000010
 | 
					
						
							|  |  |  | #define  B1200	0000011
 | 
					
						
							|  |  |  | #define  B1800	0000012
 | 
					
						
							|  |  |  | #define  B2400	0000013
 | 
					
						
							|  |  |  | #define  B4800	0000014
 | 
					
						
							|  |  |  | #define  B9600	0000015
 | 
					
						
							|  |  |  | #define  B19200	0000016
 | 
					
						
							|  |  |  | #define  B38400	0000017
 | 
					
						
							|  |  |  | #define EXTA B19200
 | 
					
						
							|  |  |  | #define EXTB B38400
 | 
					
						
							|  |  |  | #define CBAUDEX 0000000
 | 
					
						
							|  |  |  | #define  B57600   00020
 | 
					
						
							|  |  |  | #define  B115200  00021
 | 
					
						
							|  |  |  | #define  B230400  00022
 | 
					
						
							|  |  |  | #define  B460800  00023
 | 
					
						
							|  |  |  | #define  B500000  00024
 | 
					
						
							|  |  |  | #define  B576000  00025
 | 
					
						
							|  |  |  | #define  B921600  00026
 | 
					
						
							|  |  |  | #define B1000000  00027
 | 
					
						
							|  |  |  | #define B1152000  00030
 | 
					
						
							|  |  |  | #define B1500000  00031
 | 
					
						
							|  |  |  | #define B2000000  00032
 | 
					
						
							|  |  |  | #define B2500000  00033
 | 
					
						
							|  |  |  | #define B3000000  00034
 | 
					
						
							|  |  |  | #define B3500000  00035
 | 
					
						
							|  |  |  | #define B4000000  00036
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #define CSIZE	00001400
 | 
					
						
							|  |  |  | #define   CS5	00000000
 | 
					
						
							|  |  |  | #define   CS6	00000400
 | 
					
						
							|  |  |  | #define   CS7	00001000
 | 
					
						
							|  |  |  | #define   CS8	00001400
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #define CSTOPB	00002000
 | 
					
						
							|  |  |  | #define CREAD	00004000
 | 
					
						
							|  |  |  | #define PARENB	00010000
 | 
					
						
							|  |  |  | #define PARODD	00020000
 | 
					
						
							|  |  |  | #define HUPCL	00040000
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #define CLOCAL	00100000
 | 
					
						
							| 
									
										
										
										
											2006-05-25 18:44:17 -07:00
										 |  |  | #define CMSPAR	  010000000000		/* mark or space (stick) parity */
 | 
					
						
							| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | #define CRTSCTS	  020000000000		/* flow control */
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* c_lflag bits */ | 
					
						
							|  |  |  | #define ISIG	0x00000080
 | 
					
						
							|  |  |  | #define ICANON	0x00000100
 | 
					
						
							|  |  |  | #define XCASE	0x00004000
 | 
					
						
							|  |  |  | #define ECHO	0x00000008
 | 
					
						
							|  |  |  | #define ECHOE	0x00000002
 | 
					
						
							|  |  |  | #define ECHOK	0x00000004
 | 
					
						
							|  |  |  | #define ECHONL	0x00000010
 | 
					
						
							|  |  |  | #define NOFLSH	0x80000000
 | 
					
						
							|  |  |  | #define TOSTOP	0x00400000
 | 
					
						
							|  |  |  | #define ECHOCTL	0x00000040
 | 
					
						
							|  |  |  | #define ECHOPRT	0x00000020
 | 
					
						
							|  |  |  | #define ECHOKE	0x00000001
 | 
					
						
							|  |  |  | #define FLUSHO	0x00800000
 | 
					
						
							|  |  |  | #define PENDIN	0x20000000
 | 
					
						
							|  |  |  | #define IEXTEN	0x00000400
 | 
					
						
							| 
									
										
											  
											
												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>
											
										 
											2010-06-22 10:14:49 -07:00
										 |  |  | #define EXTPROC	0x10000000
 | 
					
						
							| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  | /* Values for the ACTION argument to `tcflow'.  */ | 
					
						
							|  |  |  | #define	TCOOFF		0
 | 
					
						
							|  |  |  | #define	TCOON		1
 | 
					
						
							|  |  |  | #define	TCIOFF		2
 | 
					
						
							|  |  |  | #define	TCION		3
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* Values for the QUEUE_SELECTOR argument to `tcflush'.  */ | 
					
						
							|  |  |  | #define	TCIFLUSH	0
 | 
					
						
							|  |  |  | #define	TCOFLUSH	1
 | 
					
						
							|  |  |  | #define	TCIOFLUSH	2
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* Values for the OPTIONAL_ACTIONS argument to `tcsetattr'.  */ | 
					
						
							|  |  |  | #define	TCSANOW		0
 | 
					
						
							|  |  |  | #define	TCSADRAIN	1
 | 
					
						
							|  |  |  | #define	TCSAFLUSH	2
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #endif /* _ALPHA_TERMBITS_H */
 |