mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-12 13:55:32 +00:00
![hyc@symas.com](/assets/img/avatar_default.png)
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>
112 lines
3.6 KiB
C
112 lines
3.6 KiB
C
#ifndef _ASM_ALPHA_IOCTLS_H
|
|
#define _ASM_ALPHA_IOCTLS_H
|
|
|
|
#include <asm/ioctl.h>
|
|
|
|
#define FIOCLEX _IO('f', 1)
|
|
#define FIONCLEX _IO('f', 2)
|
|
#define FIOASYNC _IOW('f', 125, int)
|
|
#define FIONBIO _IOW('f', 126, int)
|
|
#define FIONREAD _IOR('f', 127, int)
|
|
#define TIOCINQ FIONREAD
|
|
#define FIOQSIZE _IOR('f', 128, loff_t)
|
|
|
|
#define TIOCGETP _IOR('t', 8, struct sgttyb)
|
|
#define TIOCSETP _IOW('t', 9, struct sgttyb)
|
|
#define TIOCSETN _IOW('t', 10, struct sgttyb) /* TIOCSETP wo flush */
|
|
|
|
#define TIOCSETC _IOW('t', 17, struct tchars)
|
|
#define TIOCGETC _IOR('t', 18, struct tchars)
|
|
#define TCGETS _IOR('t', 19, struct termios)
|
|
#define TCSETS _IOW('t', 20, struct termios)
|
|
#define TCSETSW _IOW('t', 21, struct termios)
|
|
#define TCSETSF _IOW('t', 22, struct termios)
|
|
|
|
#define TCGETA _IOR('t', 23, struct termio)
|
|
#define TCSETA _IOW('t', 24, struct termio)
|
|
#define TCSETAW _IOW('t', 25, struct termio)
|
|
#define TCSETAF _IOW('t', 28, struct termio)
|
|
|
|
#define TCSBRK _IO('t', 29)
|
|
#define TCXONC _IO('t', 30)
|
|
#define TCFLSH _IO('t', 31)
|
|
|
|
#define TIOCSWINSZ _IOW('t', 103, struct winsize)
|
|
#define TIOCGWINSZ _IOR('t', 104, struct winsize)
|
|
#define TIOCSTART _IO('t', 110) /* start output, like ^Q */
|
|
#define TIOCSTOP _IO('t', 111) /* stop output, like ^S */
|
|
#define TIOCOUTQ _IOR('t', 115, int) /* output queue size */
|
|
|
|
#define TIOCGLTC _IOR('t', 116, struct ltchars)
|
|
#define TIOCSLTC _IOW('t', 117, struct ltchars)
|
|
#define TIOCSPGRP _IOW('t', 118, int)
|
|
#define TIOCGPGRP _IOR('t', 119, int)
|
|
|
|
#define TIOCEXCL 0x540C
|
|
#define TIOCNXCL 0x540D
|
|
#define TIOCSCTTY 0x540E
|
|
|
|
#define TIOCSTI 0x5412
|
|
#define TIOCMGET 0x5415
|
|
#define TIOCMBIS 0x5416
|
|
#define TIOCMBIC 0x5417
|
|
#define TIOCMSET 0x5418
|
|
# define TIOCM_LE 0x001
|
|
# define TIOCM_DTR 0x002
|
|
# define TIOCM_RTS 0x004
|
|
# define TIOCM_ST 0x008
|
|
# define TIOCM_SR 0x010
|
|
# define TIOCM_CTS 0x020
|
|
# define TIOCM_CAR 0x040
|
|
# define TIOCM_RNG 0x080
|
|
# define TIOCM_DSR 0x100
|
|
# define TIOCM_CD TIOCM_CAR
|
|
# define TIOCM_RI TIOCM_RNG
|
|
# define TIOCM_OUT1 0x2000
|
|
# define TIOCM_OUT2 0x4000
|
|
# define TIOCM_LOOP 0x8000
|
|
|
|
#define TIOCGSOFTCAR 0x5419
|
|
#define TIOCSSOFTCAR 0x541A
|
|
#define TIOCLINUX 0x541C
|
|
#define TIOCCONS 0x541D
|
|
#define TIOCGSERIAL 0x541E
|
|
#define TIOCSSERIAL 0x541F
|
|
#define TIOCPKT 0x5420
|
|
# define TIOCPKT_DATA 0
|
|
# define TIOCPKT_FLUSHREAD 1
|
|
# define TIOCPKT_FLUSHWRITE 2
|
|
# define TIOCPKT_STOP 4
|
|
# define TIOCPKT_START 8
|
|
# define TIOCPKT_NOSTOP 16
|
|
# define TIOCPKT_DOSTOP 32
|
|
# define TIOCPKT_IOCTL 64
|
|
|
|
|
|
#define TIOCNOTTY 0x5422
|
|
#define TIOCSETD 0x5423
|
|
#define TIOCGETD 0x5424
|
|
#define TCSBRKP 0x5425 /* Needed for POSIX tcsendbreak() */
|
|
#define TIOCSBRK 0x5427 /* BSD compatibility */
|
|
#define TIOCCBRK 0x5428 /* BSD compatibility */
|
|
#define TIOCGSID 0x5429 /* Return the session ID of FD */
|
|
#define TIOCGPTN _IOR('T',0x30, unsigned int) /* Get Pty Number (of pty-mux device) */
|
|
#define TIOCSPTLCK _IOW('T',0x31, int) /* Lock/unlock Pty */
|
|
#define TIOCSIG _IOW('T',0x36, int) /* Generate signal on Pty slave */
|
|
|
|
#define TIOCSERCONFIG 0x5453
|
|
#define TIOCSERGWILD 0x5454
|
|
#define TIOCSERSWILD 0x5455
|
|
#define TIOCGLCKTRMIOS 0x5456
|
|
#define TIOCSLCKTRMIOS 0x5457
|
|
#define TIOCSERGSTRUCT 0x5458 /* For debugging only */
|
|
#define TIOCSERGETLSR 0x5459 /* Get line status register */
|
|
/* ioctl (fd, TIOCSERGETLSR, &result) where result may be as below */
|
|
# define TIOCSER_TEMT 0x01 /* Transmitter physically empty */
|
|
#define TIOCSERGETMULTI 0x545A /* Get multiport config */
|
|
#define TIOCSERSETMULTI 0x545B /* Set multiport config */
|
|
|
|
#define TIOCMIWAIT 0x545C /* wait for a change on serial input line(s) */
|
|
#define TIOCGICOUNT 0x545D /* read serial port inline interrupt counts */
|
|
|
|
#endif /* _ASM_ALPHA_IOCTLS_H */
|