| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | /*
 | 
					
						
							|  |  |  |  * This file is subject to the terms and conditions of the GNU General Public | 
					
						
							|  |  |  |  * License.  See the file "COPYING" in the main directory of this archive | 
					
						
							|  |  |  |  * for more details. | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * Copyright (C) 1995, 1996, 2001 Ralf Baechle | 
					
						
							|  |  |  |  * Copyright (C) 2001 MIPS Technologies, Inc. | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | #ifndef __ASM_IOCTLS_H
 | 
					
						
							|  |  |  | #define __ASM_IOCTLS_H
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #include <asm/ioctl.h>
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #define TCGETA		0x5401
 | 
					
						
							|  |  |  | #define TCSETA		0x5402	/* Clashes with SNDCTL_TMR_START sound ioctl */
 | 
					
						
							|  |  |  | #define TCSETAW		0x5403
 | 
					
						
							|  |  |  | #define TCSETAF		0x5404
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #define TCSBRK		0x5405
 | 
					
						
							|  |  |  | #define TCXONC		0x5406
 | 
					
						
							|  |  |  | #define TCFLSH		0x5407
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #define TCGETS		0x540d
 | 
					
						
							|  |  |  | #define TCSETS		0x540e
 | 
					
						
							|  |  |  | #define TCSETSW		0x540f
 | 
					
						
							|  |  |  | #define TCSETSF		0x5410
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #define TIOCEXCL	0x740d		/* set exclusive use of tty */
 | 
					
						
							|  |  |  | #define TIOCNXCL	0x740e		/* reset exclusive use of tty */
 | 
					
						
							|  |  |  | #define TIOCOUTQ	0x7472		/* output queue size */
 | 
					
						
							|  |  |  | #define TIOCSTI		0x5472		/* simulate terminal input */
 | 
					
						
							|  |  |  | #define TIOCMGET	0x741d		/* get all modem bits */
 | 
					
						
							|  |  |  | #define TIOCMBIS	0x741b		/* bis modem bits */
 | 
					
						
							|  |  |  | #define TIOCMBIC	0x741c		/* bic modem bits */
 | 
					
						
							|  |  |  | #define TIOCMSET	0x741a		/* set all modem bits */
 | 
					
						
							|  |  |  | #define TIOCPKT		0x5470		/* pty: set/clear packet mode */
 | 
					
						
							|  |  |  | #define	 TIOCPKT_DATA		0x00	/* data packet */
 | 
					
						
							|  |  |  | #define	 TIOCPKT_FLUSHREAD	0x01	/* flush packet */
 | 
					
						
							|  |  |  | #define	 TIOCPKT_FLUSHWRITE	0x02	/* flush packet */
 | 
					
						
							|  |  |  | #define	 TIOCPKT_STOP		0x04	/* stop output */
 | 
					
						
							|  |  |  | #define	 TIOCPKT_START		0x08	/* start output */
 | 
					
						
							|  |  |  | #define	 TIOCPKT_NOSTOP		0x10	/* no more ^S, ^Q */
 | 
					
						
							|  |  |  | #define	 TIOCPKT_DOSTOP		0x20	/* now do ^S ^Q */
 | 
					
						
							| 
									
										
										
										
											2013-01-22 12:59:30 +01:00
										 |  |  | #define	 TIOCPKT_IOCTL		0x40	/* state change of pty driver */
 | 
					
						
							| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | #define TIOCSWINSZ	_IOW('t', 103, struct winsize)	/* set window size */
 | 
					
						
							|  |  |  | #define TIOCGWINSZ	_IOR('t', 104, struct winsize)	/* get window size */
 | 
					
						
							|  |  |  | #define TIOCNOTTY	0x5471		/* void tty association */
 | 
					
						
							|  |  |  | #define TIOCSETD	0x7401
 | 
					
						
							|  |  |  | #define TIOCGETD	0x7400
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #define FIOCLEX		0x6601
 | 
					
						
							|  |  |  | #define FIONCLEX	0x6602
 | 
					
						
							|  |  |  | #define FIOASYNC	0x667d
 | 
					
						
							|  |  |  | #define FIONBIO		0x667e
 | 
					
						
							|  |  |  | #define FIOQSIZE	0x667f
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #define TIOCGLTC	0x7474			/* get special local chars */
 | 
					
						
							|  |  |  | #define TIOCSLTC	0x7475			/* set special local chars */
 | 
					
						
							|  |  |  | #define TIOCSPGRP	_IOW('t', 118, int)	/* set pgrp of tty */
 | 
					
						
							|  |  |  | #define TIOCGPGRP	_IOR('t', 119, int)	/* get pgrp of tty */
 | 
					
						
							|  |  |  | #define TIOCCONS	_IOW('t', 120, int)	/* become virtual console */
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #define FIONREAD	0x467f
 | 
					
						
							|  |  |  | #define TIOCINQ		FIONREAD
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-01-22 12:59:30 +01:00
										 |  |  | #define TIOCGETP	0x7408
 | 
					
						
							|  |  |  | #define TIOCSETP	0x7409
 | 
					
						
							|  |  |  | #define TIOCSETN	0x740a			/* TIOCSETP wo flush */
 | 
					
						
							| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  | /* #define TIOCSETA	_IOW('t', 20, struct termios) set termios struct */ | 
					
						
							|  |  |  | /* #define TIOCSETAW	_IOW('t', 21, struct termios) drain output, set */ | 
					
						
							|  |  |  | /* #define TIOCSETAF	_IOW('t', 22, struct termios) drn out, fls in, set */ | 
					
						
							|  |  |  | /* #define TIOCGETD	_IOR('t', 26, int)	get line discipline */ | 
					
						
							|  |  |  | /* #define TIOCSETD	_IOW('t', 27, int)	set line discipline */ | 
					
						
							|  |  |  | 						/* 127-124 compat */ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-01-22 12:59:30 +01:00
										 |  |  | #define TIOCSBRK	0x5427	/* BSD compatibility */
 | 
					
						
							|  |  |  | #define TIOCCBRK	0x5428	/* BSD compatibility */
 | 
					
						
							|  |  |  | #define TIOCGSID	0x7416	/* Return the session ID of FD */
 | 
					
						
							| 
									
										
										
										
											2007-10-11 23:46:15 +01:00
										 |  |  | #define TCGETS2		_IOR('T', 0x2A, struct termios2)
 | 
					
						
							|  |  |  | #define TCSETS2		_IOW('T', 0x2B, struct termios2)
 | 
					
						
							|  |  |  | #define TCSETSW2	_IOW('T', 0x2C, struct termios2)
 | 
					
						
							|  |  |  | #define TCSETSF2	_IOW('T', 0x2D, struct termios2)
 | 
					
						
							|  |  |  | #define TIOCGPTN	_IOR('T', 0x30, unsigned int) /* Get Pty Number (of pty-mux device) */
 | 
					
						
							|  |  |  | #define TIOCSPTLCK	_IOW('T', 0x31, int)  /* Lock/unlock Pty */
 | 
					
						
							| 
									
										
										
										
											2010-12-03 12:48:23 +01:00
										 |  |  | #define TIOCGDEV	_IOR('T', 0x32, unsigned int) /* Get primary device node of /dev/console */
 | 
					
						
							| 
									
										
											  
											
												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 TIOCSIG		_IOW('T', 0x36, int)  /* Generate signal on Pty slave */
 | 
					
						
							| 
									
										
										
										
											2011-02-17 18:39:28 +01:00
										 |  |  | #define TIOCVHANGUP	0x5437
 | 
					
						
							| 
									
										
										
										
											2012-10-24 23:43:21 +04:00
										 |  |  | #define TIOCGPKT	_IOR('T', 0x38, int) /* Get packet mode state */
 | 
					
						
							|  |  |  | #define TIOCGPTLCK	_IOR('T', 0x39, int) /* Get Pty lock state */
 | 
					
						
							|  |  |  | #define TIOCGEXCL	_IOR('T', 0x40, int) /* Get exclusive mode state */
 | 
					
						
							| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  | /* I hope the range from 0x5480 on is free ... */ | 
					
						
							|  |  |  | #define TIOCSCTTY	0x5480		/* become controlling tty */
 | 
					
						
							|  |  |  | #define TIOCGSOFTCAR	0x5481
 | 
					
						
							|  |  |  | #define TIOCSSOFTCAR	0x5482
 | 
					
						
							|  |  |  | #define TIOCLINUX	0x5483
 | 
					
						
							|  |  |  | #define TIOCGSERIAL	0x5484
 | 
					
						
							|  |  |  | #define TIOCSSERIAL	0x5485
 | 
					
						
							|  |  |  | #define TCSBRKP		0x5486	/* Needed for POSIX tcsendbreak() */
 | 
					
						
							|  |  |  | #define TIOCSERCONFIG	0x5488
 | 
					
						
							|  |  |  | #define TIOCSERGWILD	0x5489
 | 
					
						
							|  |  |  | #define TIOCSERSWILD	0x548a
 | 
					
						
							|  |  |  | #define TIOCGLCKTRMIOS	0x548b
 | 
					
						
							|  |  |  | #define TIOCSLCKTRMIOS	0x548c
 | 
					
						
							|  |  |  | #define TIOCSERGSTRUCT	0x548d /* For debugging only */
 | 
					
						
							| 
									
										
										
										
											2013-01-22 12:59:30 +01:00
										 |  |  | #define TIOCSERGETLSR	0x548e /* Get line status register */
 | 
					
						
							|  |  |  | #define TIOCSERGETMULTI 0x548f /* Get multiport config	*/
 | 
					
						
							| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | #define TIOCSERSETMULTI 0x5490 /* Set multiport config */
 | 
					
						
							| 
									
										
										
										
											2013-01-22 12:59:30 +01:00
										 |  |  | #define TIOCMIWAIT	0x5491 /* wait for a change on serial input line(s) */
 | 
					
						
							|  |  |  | #define TIOCGICOUNT	0x5492 /* read serial port inline interrupt counts */
 | 
					
						
							| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  | #endif /* __ASM_IOCTLS_H */
 |