Lots of changes
[kopensolaris-gnu/glibc.git] / sysdeps / unix / sysv / solaris2 / kopensolaris-gnu / bits / termios.h
1 /* termios type and macro definitions.  OpenSolaris version.
2    Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2003, 2005, 2008
3         Free Software Foundation, Inc.
4    This file is part of the GNU C Library.
5
6    The GNU C Library is free software; you can redistribute it and/or
7    modify it under the terms of the GNU Lesser General Public
8    License as published by the Free Software Foundation; either
9    version 2.1 of the License, or (at your option) any later version.
10
11    The GNU C Library is distributed in the hope that it will be useful,
12    but WITHOUT ANY WARRANTY; without even the implied warranty of
13    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14    Lesser General Public License for more details.
15
16    You should have received a copy of the GNU Lesser General Public
17    License along with the GNU C Library; if not, write to the Free
18    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
19    02111-1307 USA.  */
20
21 #ifndef _TERMIOS_H
22 # error "Never include <bits/termios.h> directly; use <termios.h> instead."
23 #endif
24
25 typedef unsigned char   cc_t;
26 typedef unsigned int    speed_t;
27 typedef unsigned int    tcflag_t;
28
29 #define NCCS 19
30 struct termios
31   {
32     tcflag_t c_iflag;           /* input mode flags */
33     tcflag_t c_oflag;           /* output mode flags */
34     tcflag_t c_cflag;           /* control mode flags */
35     tcflag_t c_lflag;           /* line discipline mode flags */
36     cc_t c_cc[NCCS];            /* control characters */
37   };
38
39 /* c_cc characters */
40 #define VINTR 0
41 #define VQUIT 1
42 #define VERASE 2
43 #define VKILL 3
44 #define VEOF 4
45 #define VEOL 5
46 #define VEOL2 6
47 #define VMIN 4
48 #define VTIME 5
49 #define VSWTCH 7
50 #define VSWTC VSWTCH
51 #define VSTART 8
52 #define VSTOP 9
53 #define VSUSP 10
54 #define VDSUSP 11
55 #define VREPRINT 12
56 #define VDISCARD 13
57 #define VWERASE 14
58 #define VLNEXT 15
59
60 /* c_iflag bits */
61 #define IGNBRK  0000001
62 #define BRKINT  0000002
63 #define IGNPAR  0000004
64 #define PARMRK  0000010
65 #define INPCK   0000020
66 #define ISTRIP  0000040
67 #define INLCR   0000100
68 #define IGNCR   0000200
69 #define ICRNL   0000400
70 #define IUCLC   0001000
71 #define IXON    0002000
72 #define IXANY   0004000
73 #define IXOFF   0010000
74 #define IMAXBEL 0020000
75 #define DOSMODE 0100000
76
77 /* c_oflag bits */
78 #define OPOST   0000001
79 #define OLCUC   0000002
80 #define ONLCR   0000004
81 #define OCRNL   0000010
82 #define ONOCR   0000020
83 #define ONLRET  0000040
84 #define OFILL   0000100
85 #define OFDEL   0000200
86 #if defined __USE_MISC || defined __USE_XOPEN
87 # define NLDLY  0000400
88 # define   NL0  0000000
89 # define   NL1  0000400
90 # define CRDLY  0003000
91 # define   CR0  0000000
92 # define   CR1  0001000
93 # define   CR2  0002000
94 # define   CR3  0003000
95 # define TABDLY 0014000
96 # define   TAB0 0000000
97 # define   TAB1 0004000
98 # define   TAB2 0010000
99 # define   TAB3 0014000
100 # define BSDLY  0020000
101 # define   BS0  0000000
102 # define   BS1  0020000
103 # define FFDLY  0100000
104 # define   FF0  0000000
105 # define   FF1  0100000
106 #endif
107
108 #define VTDLY   0040000
109 #define   VT0   0000000
110 #define   VT1   0040000
111
112 #ifdef __USE_MISC
113 # define XTABS  0014000
114 #endif
115
116 #ifdef __USE_MISC
117 # define PAGEOUT        0200000
118 # define WRAP   0400000
119 #endif
120
121 /* c_cflag bit meaning */
122 #if defined(__USE_MISC)
123 # define CBAUD  0000017
124 #endif
125 #define  B0     0000000         /* hang up */
126 #define  B50    0000001
127 #define  B75    0000002
128 #define  B110   0000003
129 #define  B134   0000004
130 #define  B150   0000005
131 #define  B200   0000006
132 #define  B300   0000007
133 #define  B600   0000010
134 #define  B1200  0000011
135 #define  B1800  0000012
136 #define  B2400  0000013
137 #define  B4800  0000014
138 #define  B9600  0000015
139 #define  B19200 0000016
140 #define  B38400 0000017
141 #define  B57600 0000020
142 #define  B76800 0000021
143 #define  B115200        0000022
144 #define  B153600        0000023
145 #define  B230400        0000024
146 #define  B307200        0000025
147 #define  B460800        0000026
148 #define __MAX_BAUD      B460800
149 #define CSIZE   0000060
150 #define   CS5   0000000
151 #define   CS6   0000020
152 #define   CS7   0000040
153 #define   CS8   0000060
154 #define CSTOPB  0000100
155 #define CREAD   0000200
156 #define PARENB  0000400
157 #define PARODD  0001000
158 #define HUPCL   0002000
159 #define CLOCAL  0004000
160 #ifdef __USE_MISC
161 # define RCV1EN         0010000
162 # define XMT1EN         0020000
163 # define LOBLK          0040000
164 # define XCLUDE         0100000
165 # define CRTSXOFF       010000000000
166 # define CRTSCTS        020000000000
167 # define CRTSCTS        020000000000
168 # define CIBAUD         03600000
169 # define PAREXT         04000000
170 # define CBAUDEXT       010000000
171 # define CIBAUDEXT      020000000
172 # define CRTS_IFLOW     010000000000
173 # define CCTS_OFLOW     020000000000
174 #endif
175
176 /* c_lflag bits */
177 #define ISIG    0000001
178 #define ICANON  0000002
179 #if defined __USE_MISC || defined __USE_XOPEN
180 # define XCASE  0000004
181 #endif
182 #define ECHO    0000010
183 #define ECHOE   0000020
184 #define ECHOK   0000040
185 #define ECHONL  0000100
186 #define NOFLSH  0000200
187 #define TOSTOP  0000400
188 #ifdef __USE_MISC
189 # define ECHOCTL 0001000
190 # define ECHOPRT 0002000
191 # define ECHOKE  0004000
192 # define FLUSHO  0010000
193 # define PENDIN  0040000
194 #endif
195 #define IEXTEN  0100000
196
197 /* tcflow() and TCXONC use these */
198 #define TCOOFF          0
199 #define TCOON           1
200 #define TCIOFF          2
201 #define TCION           3
202
203 /* tcflush() and TCFLSH use these */
204 #define TCIFLUSH        0
205 #define TCOFLUSH        1
206 #define TCIOFLUSH       2
207
208 /* tcsetattr uses these */
209 #ifndef _TIOC
210 # define    _TIOC   ('T'<<8)
211 #endif
212 #define TCSANOW         (_TIOC|14)
213 #define TCSADRAIN       (_TIOC|15)
214 #define TCSAFLUSH       (_TIOC|16)
215
216
217 #define _IOT_termios /* Hurd ioctl type field.  */ \
218   _IOT (_IOTS (cflag_t), 4, _IOTS (cc_t), NCCS, _IOTS (speed_t), 2)
219
220 #define LDIOC           ('D'<<8)
221 #define LDOPEN          (LDIOC|0)
222 #define LDCLOSE         (LDIOC|1)
223 #define LDCHG           (LDIOC|2)
224 #define LDGETT          (LDIOC|8)
225 #define LDSETT          (LDIOC|9)
226 #define LDSMAP          (LDIOC|110)
227 #define LDGMAP          (LDIOC|111)
228 #define LDNMAP          (LDIOC|112)
229 #define LDEMAP          (LDIOC|113)
230 #define LDDMAP          (LDIOC|114)
231
232 #define DIOC            ('d'<<8)
233 #define DIOCGETP        (DIOC|8)
234 #define DIOCSETP        (DIOC|9)
235
236 #define FIORDCHK        (('f'<<8)|3)