Linux info header.
[kopensolaris-gnu/glibc.git] / sysdeps / unix / sysv / linux / bits / termios.h
1 /* termios type and macro definitions.  Linux version.
2    Copyright (C) 1993, 1994, 1995, 1996, 1997 Free Software Foundation, Inc.
3    This file is part of the GNU C Library.
4
5    The GNU C Library is free software; you can redistribute it and/or
6    modify it under the terms of the GNU Library General Public License as
7    published by the Free Software Foundation; either version 2 of the
8    License, or (at your option) any later version.
9
10    The GNU C Library is distributed in the hope that it will be useful,
11    but WITHOUT ANY WARRANTY; without even the implied warranty of
12    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13    Library General Public License for more details.
14
15    You should have received a copy of the GNU Library General Public
16    License along with the GNU C Library; see the file COPYING.LIB.  If not,
17    write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
18    Boston, MA 02111-1307, USA.  */
19
20 /*
21  * Never include this file directly; use <termios.h> instead.
22  */
23
24
25 #ifndef _BITS_TERMIOS_H
26 #define _BITS_TERMIOS_H 1
27
28 typedef unsigned char   cc_t;
29 typedef unsigned int    speed_t;
30 typedef unsigned int    tcflag_t;
31
32 #define NCCS 32
33 struct termios
34   {
35     tcflag_t c_iflag;           /* input mode flags */
36     tcflag_t c_oflag;           /* output mode flags */
37     tcflag_t c_cflag;           /* control mode flags */
38     tcflag_t c_lflag;           /* local mode flags */
39     cc_t c_line;                        /* line discipline */
40     cc_t c_cc[NCCS];            /* control characters */
41     speed_t c_ispeed;           /* input speed */
42     speed_t c_ospeed;           /* output speed */
43   };
44
45 /* c_cc characters */
46 #define VINTR 0
47 #define VQUIT 1
48 #define VERASE 2
49 #define VKILL 3
50 #define VEOF 4
51 #define VTIME 5
52 #define VMIN 6
53 #define VSWTC 7
54 #define VSTART 8
55 #define VSTOP 9
56 #define VSUSP 10
57 #define VEOL 11
58 #define VREPRINT 12
59 #define VDISCARD 13
60 #define VWERASE 14
61 #define VLNEXT 15
62 #define VEOL2 16
63
64 /* c_iflag bits */
65 #define IGNBRK  0000001
66 #define BRKINT  0000002
67 #define IGNPAR  0000004
68 #define PARMRK  0000010
69 #define INPCK   0000020
70 #define ISTRIP  0000040
71 #define INLCR   0000100
72 #define IGNCR   0000200
73 #define ICRNL   0000400
74 #define IUCLC   0001000
75 #define IXON    0002000
76 #define IXANY   0004000
77 #define IXOFF   0010000
78 #define IMAXBEL 0020000
79
80 /* c_oflag bits */
81 #define OPOST   0000001
82 #define OLCUC   0000002
83 #define ONLCR   0000004
84 #define OCRNL   0000010
85 #define ONOCR   0000020
86 #define ONLRET  0000040
87 #define OFILL   0000100
88 #define OFDEL   0000200
89 #define NLDLY   0000400
90 #define   NL0   0000000
91 #define   NL1   0000400
92 #define CRDLY   0003000
93 #define   CR0   0000000
94 #define   CR1   0001000
95 #define   CR2   0002000
96 #define   CR3   0003000
97 #define TABDLY  0014000
98 #define   TAB0  0000000
99 #define   TAB1  0004000
100 #define   TAB2  0010000
101 #define   TAB3  0014000
102 #define   XTABS 0014000
103 #define BSDLY   0020000
104 #define   BS0   0000000
105 #define   BS1   0020000
106 #define VTDLY   0040000
107 #define   VT0   0000000
108 #define   VT1   0040000
109 #define FFDLY   0100000
110 #define   FF0   0000000
111 #define   FF1   0100000
112
113 /* c_cflag bit meaning */
114 #define CBAUD   0010017
115 #define  B0     0000000         /* hang up */
116 #define  B50    0000001
117 #define  B75    0000002
118 #define  B110   0000003
119 #define  B134   0000004
120 #define  B150   0000005
121 #define  B200   0000006
122 #define  B300   0000007
123 #define  B600   0000010
124 #define  B1200  0000011
125 #define  B1800  0000012
126 #define  B2400  0000013
127 #define  B4800  0000014
128 #define  B9600  0000015
129 #define  B19200 0000016
130 #define  B38400 0000017
131 #define EXTA B19200
132 #define EXTB B38400
133 #define CSIZE   0000060
134 #define   CS5   0000000
135 #define   CS6   0000020
136 #define   CS7   0000040
137 #define   CS8   0000060
138 #define CSTOPB  0000100
139 #define CREAD   0000200
140 #define PARENB  0000400
141 #define PARODD  0001000
142 #define HUPCL   0002000
143 #define CLOCAL  0004000
144 #define CBAUDEX 0010000
145 #define  B57600  0010001
146 #define  B115200 0010002
147 #define  B230400 0010003
148 #define  B460800 0010004
149 #define CIBAUD    002003600000  /* input baud rate (not used) */
150 #define CRTSCTS   020000000000          /* flow control */
151
152 /* c_lflag bits */
153 #define ISIG    0000001
154 #define ICANON  0000002
155 #define XCASE   0000004
156 #define ECHO    0000010
157 #define ECHOE   0000020
158 #define ECHOK   0000040
159 #define ECHONL  0000100
160 #define NOFLSH  0000200
161 #define TOSTOP  0000400
162 #define ECHOCTL 0001000
163 #define ECHOPRT 0002000
164 #define ECHOKE  0004000
165 #define FLUSHO  0010000
166 #define PENDIN  0040000
167 #define IEXTEN  0100000
168
169 /* tcflow() and TCXONC use these */
170 #define TCOOFF          0
171 #define TCOON           1
172 #define TCIOFF          2
173 #define TCION           3
174
175 /* tcflush() and TCFLSH use these */
176 #define TCIFLUSH        0
177 #define TCOFLUSH        1
178 #define TCIOFLUSH       2
179
180 /* tcsetattr uses these */
181 #define TCSANOW         0
182 #define TCSADRAIN       1
183 #define TCSAFLUSH       2
184
185
186 #define _IOT_termios /* Hurd ioctl type field.  */ \
187   _IOT (_IOTS (cflag_t), 4, _IOTS (cc_t), NCCS, _IOTS (speed_t), 2)
188
189 #endif /* bits/termios.h */