mirror of
				https://sourceware.org/git/glibc.git
				synced 2025-10-30 10:45:40 +03:00 
			
		
		
		
	
		
			
				
	
	
		
			322 lines
		
	
	
		
			7.4 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			322 lines
		
	
	
		
			7.4 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /* Copyright (C) 1997-2013 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, see
 | |
|    <http://www.gnu.org/licenses/>.  */
 | |
| 
 | |
| #ifndef _TERMIOS_H
 | |
| # error "Never include <bits/termios.h> directly; use <termios.h> instead."
 | |
| #endif
 | |
| 
 | |
| 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 32
 | |
| 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_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 */
 | |
| #define _HAVE_STRUCT_TERMIOS_C_ISPEED 1
 | |
| #define _HAVE_STRUCT_TERMIOS_C_OSPEED 1
 | |
| };
 | |
| 
 | |
| /* 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
 | |
| #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
 | |
| #if defined __USE_MISC || defined __USE_XOPEN
 | |
| # 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
 | |
| #endif
 | |
| #define VTDLY	00200000
 | |
| #define   VT0	00000000
 | |
| #define   VT1	00200000
 | |
| 
 | |
| #ifdef __USE_MISC
 | |
| # define XTABS	00006000
 | |
| #endif
 | |
| 
 | |
| /* c_cflag bit meaning */
 | |
| #ifdef __USE_MISC
 | |
| # define CBAUD	0000377
 | |
| #endif
 | |
| #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
 | |
| #ifdef __USE_MISC
 | |
| # define EXTA B19200
 | |
| # define EXTB B38400
 | |
| # define CBAUDEX 0000020
 | |
| #endif
 | |
| #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
 | |
| #ifdef __USE_MISC
 | |
| # define CMSPAR   010000000000		/* mark or space (stick) parity */
 | |
| # define CRTSCTS  020000000000		/* flow control */
 | |
| #endif
 | |
| 
 | |
| /* c_lflag bits */
 | |
| #define ISIG	0x00000080
 | |
| #define ICANON	0x00000100
 | |
| #if defined __USE_MISC || defined __USE_XOPEN
 | |
| # define XCASE	0x00004000
 | |
| #endif
 | |
| #define ECHO	0x00000008
 | |
| #define ECHOE	0x00000002
 | |
| #define ECHOK	0x00000004
 | |
| #define ECHONL	0x00000010
 | |
| #define NOFLSH	0x80000000
 | |
| #define TOSTOP	0x00400000
 | |
| #ifdef __USE_MISC
 | |
| # define ECHOCTL	0x00000040
 | |
| # define ECHOPRT	0x00000020
 | |
| # define ECHOKE	0x00000001
 | |
| # define FLUSHO	0x00800000
 | |
| # define PENDIN	0x20000000
 | |
| #endif
 | |
| #define IEXTEN	0x00000400
 | |
| #ifdef __USE_BSD
 | |
| # define EXTPROC 0x10000000
 | |
| #endif
 | |
| 
 | |
| /* 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
 | |
| 
 | |
| struct 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		32
 | |
| 
 | |
| struct winsize {
 | |
| 	unsigned short ws_row;
 | |
| 	unsigned short ws_col;
 | |
| 	unsigned short ws_xpixel;
 | |
| 	unsigned short ws_ypixel;
 | |
| };
 | |
| 
 | |
| #define NCC 10
 | |
| struct 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  */
 |