1 /* Glibc termios struct and supporting bits
3 * For whatever reason, OSs/glibc don't have a shared interface for this. Linux
4 * has it's own (different) termios interface. We'll just use glibc's interface
5 * so that we can be interoperable/compatibile.
7 * This all is from sysdeps/ros/bits/termios.h. Check that out for the original
8 * CR statement. I'm fairly certain you can't CR this sort of stuff.
10 * Differences include removing some ifdefs and things we'll never use. You can
11 * tell this is compatibility crap that I didn't write because it uses octal.
16 typedef unsigned char cc_t;
17 typedef unsigned int speed_t;
18 typedef unsigned int tcflag_t;
23 tcflag_t c_iflag; /* input mode flags */
24 tcflag_t c_oflag; /* output mode flags */
25 tcflag_t c_cflag; /* control mode flags */
26 tcflag_t c_lflag; /* local mode flags */
27 cc_t c_line; /* line discipline */
28 cc_t c_cc[NCCS]; /* control characters */
29 /* these last two might not be supported by all glibc builds. search for
30 * _HAVE_STRUCT_TERMIOS_C_ISPEED and friends. */
31 speed_t c_ispeed; /* input speed */
32 speed_t c_ospeed; /* output speed */
55 #define IGNBRK 0000001
56 #define BRKINT 0000002
57 #define IGNPAR 0000004
58 #define PARMRK 0000010
60 #define ISTRIP 0000040
68 #define IMAXBEL 0020000
77 #define ONLRET 0000040
88 #define TABDLY 0014000
100 #define VTDLY 0040000
104 #define XTABS 0014000
106 /* c_cflag bit meaning */
107 #define CBAUD 0010017
108 #define B0 0000000 /* hang up */
117 #define B1200 0000011
118 #define B1800 0000012
119 #define B2400 0000013
120 #define B4800 0000014
121 #define B9600 0000015
122 #define B19200 0000016
123 #define B38400 0000017
126 #define CSIZE 0000060
131 #define CSTOPB 0000100
132 #define CREAD 0000200
133 #define PARENB 0000400
134 #define PARODD 0001000
135 #define HUPCL 0002000
136 #define CLOCAL 0004000
137 #define CBAUDEX 0010000
138 #define B57600 0010001
139 #define B115200 0010002
140 #define B230400 0010003
141 #define B460800 0010004
142 #define B500000 0010005
143 #define B576000 0010006
144 #define B921600 0010007
145 #define B1000000 0010010
146 #define B1152000 0010011
147 #define B1500000 0010012
148 #define B2000000 0010013
149 #define B2500000 0010014
150 #define B3000000 0010015
151 #define B3500000 0010016
152 #define B4000000 0010017
153 #define __MAX_BAUD B4000000
154 #define CIBAUD 002003600000 /* input baud rate (not used) */
155 #define CMSPAR 010000000000 /* mark or space (stick) parity */
156 #define CRTSCTS 020000000000 /* flow control */
160 #define ICANON 0000002
161 #define XCASE 0000004
163 #define ECHOE 0000020
164 #define ECHOK 0000040
165 #define ECHONL 0000100
166 #define NOFLSH 0000200
167 #define TOSTOP 0000400
168 #define ECHOCTL 0001000
169 #define ECHOPRT 0002000
170 #define ECHOKE 0004000
171 #define FLUSHO 0010000
172 #define PENDIN 0040000
173 #define IEXTEN 0100000
175 /* tcflow() and TCXONC use these */
181 /* tcflush() and TCFLSH use these */
186 /* tcsetattr uses these */