| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300 | /* Copyright (C) 1997, 1999, 2001 Free Software Foundation, Inc.   This file is part of the GNU C Library.   The GNU C Library is free software; you can redistribute it and/or   modify it under the terms of the GNU Lesser General Public   License as published by the Free Software Foundation; either   version 2.1 of the License, or (at your option) any later version.   The GNU C Library is distributed in the hope that it will be useful,   but WITHOUT ANY WARRANTY; without even the implied warranty of   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU   Lesser General Public License for more details.   You should have received a copy of the GNU Lesser General Public   License along with the GNU C Library; if not, write to the Free   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA   02111-1307 USA.  */#ifndef _TERMIOS_H# error "Never include <bits/termios.h> directly; use <termios.h> instead."#endiftypedef 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 32struct 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_line;			/* line discipline (== c_cc[19]) */	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#define VERASE	2#define VKILL	3#define VEOF	4#define VMIN	5#define VEOL	6#define VTIME	7#define VEOL2	8#define VSWTC	9#define VWERASE	10#define VREPRINT	11#define VSUSP		12#define VSTART		13#define VSTOP		14#define VLNEXT		15#define VDISCARD	16/* 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/* 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	0000377#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 0000020#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 __MAX_BAUD B4000000#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#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/* 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	2struct sgttyb {	char	sg_ispeed;	char	sg_ospeed;	char	sg_erase;	char	sg_kill;	short	sg_flags;};struct tchars {	char	t_intrc;	char	t_quitc;	char	t_startc;	char	t_stopc;	char	t_eofc;	char	t_brkc;};struct ltchars {	char	t_suspc;	char	t_dsuspc;	char	t_rprntc;	char	t_flushc;	char	t_werasc;	char	t_lnextc;};/* Used for packet mode */#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		32struct winsize {	unsigned short ws_row;	unsigned short ws_col;	unsigned short ws_xpixel;	unsigned short ws_ypixel;};#define NCC 10struct termio {	unsigned short c_iflag;		/* input mode flags */	unsigned short c_oflag;		/* output mode flags */	unsigned short c_cflag;		/* control mode flags */	unsigned short c_lflag;		/* local mode flags */	unsigned char c_line;		/* line discipline */	unsigned char c_cc[NCC];	/* control characters */};/* c_cc characters */#define _VINTR	0#define _VQUIT	1#define _VERASE	2#define _VKILL	3#define _VEOF	4#define _VMIN	5#define _VEOL	6#define _VTIME	7#define _VEOL2	8#define _VSWTC	9/* modem lines */#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/* ioctl (fd, TIOCSERGETLSR, &result) where result may be as below */#define TIOCSER_TEMT    0x01	/* Transmitter physically empty *//* line disciplines */#define N_TTY		0#define N_SLIP		1#define N_MOUSE		2#define N_PPP		3#define N_STRIP		4#define N_AX25		5#define N_X25		6	/* X.25 async  */#define N_6PACK		7#define N_MASC		8	/* Mobitex module  */#define N_R3964		9	/* Simatic R3964 module  */#define N_PROFIBUS_FDL	10	/* Profibus  */#define N_IRDA		11	/* Linux IR  */#define N_SMSBLOCK	12	/* SMS block mode  */#define N_HDLC		13	/* synchronous HDLC  */#define N_SYNC_PPP	14	/* synchronous PPP  */#define	N_HCI		15	/* Bluetooth HCI UART  */
 |