1struct termios {
2	tcflag_t c_iflag;
3	tcflag_t c_oflag;
4	tcflag_t c_cflag;
5	tcflag_t c_lflag;
6	cc_t c_line;
7	cc_t c_cc[NCCS];
8	speed_t __c_ispeed;
9	speed_t __c_ospeed;
10};
11
12#define VINTR     0
13#define VQUIT     1
14#define VERASE    2
15#define VKILL     3
16#define VEOF      4
17#define VTIME     5
18#define VMIN      6
19#define VSWTC     7
20#define VSTART    8
21#define VSTOP     9
22#define VSUSP    10
23#define VEOL     11
24#define VREPRINT 12
25#define VDISCARD 13
26#define VWERASE  14
27#define VLNEXT   15
28#define VEOL2    16
29
30#define IGNBRK  0000001
31#define BRKINT  0000002
32#define IGNPAR  0000004
33#define PARMRK  0000010
34#define INPCK   0000020
35#define ISTRIP  0000040
36#define INLCR   0000100
37#define IGNCR   0000200
38#define ICRNL   0000400
39#define IUCLC   0001000
40#define IXON    0002000
41#define IXANY   0004000
42#define IXOFF   0010000
43#define IMAXBEL 0020000
44#define IUTF8   0040000
45
46#define OPOST  0000001
47#define OLCUC  0000002
48#define ONLCR  0000004
49#define OCRNL  0000010
50#define ONOCR  0000020
51#define ONLRET 0000040
52#define OFILL  0000100
53#define OFDEL  0000200
54#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE) || defined(_XOPEN_SOURCE)
55#define NLDLY  0000400
56#define NL0    0000000
57#define NL1    0000400
58#define CRDLY  0003000
59#define CR0    0000000
60#define CR1    0001000
61#define CR2    0002000
62#define CR3    0003000
63#define TABDLY 0014000
64#define TAB0   0000000
65#define TAB1   0004000
66#define TAB2   0010000
67#define TAB3   0014000
68#define BSDLY  0020000
69#define BS0    0000000
70#define BS1    0020000
71#define FFDLY  0100000
72#define FF0    0000000
73#define FF1    0100000
74#endif
75
76#define VTDLY  0040000
77#define VT0    0000000
78#define VT1    0040000
79
80#define B0       0000000
81#define B50      0000001
82#define B75      0000002
83#define B110     0000003
84#define B134     0000004
85#define B150     0000005
86#define B200     0000006
87#define B300     0000007
88#define B600     0000010
89#define B1200    0000011
90#define B1800    0000012
91#define B2400    0000013
92#define B4800    0000014
93#define B9600    0000015
94#define B19200   0000016
95#define B38400   0000017
96
97#define B57600   0010001
98#define B115200  0010002
99#define B230400  0010003
100#define B460800  0010004
101#define B500000  0010005
102#define B576000  0010006
103#define B921600  0010007
104#define B1000000 0010010
105#define B1152000 0010011
106#define B1500000 0010012
107#define B2000000 0010013
108#define B2500000 0010014
109#define B3000000 0010015
110#define B3500000 0010016
111#define B4000000 0010017
112
113#define CSIZE  0000060
114#define CS5    0000000
115#define CS6    0000020
116#define CS7    0000040
117#define CS8    0000060
118#define CSTOPB 0000100
119#define CREAD  0000200
120#define PARENB 0000400
121#define PARODD 0001000
122#define HUPCL  0002000
123#define CLOCAL 0004000
124
125#define ISIG   0000001
126#define ICANON 0000002
127#define ECHO   0000010
128#define ECHOE  0000020
129#define ECHOK  0000040
130#define ECHONL 0000100
131#define NOFLSH 0000200
132#define TOSTOP 0000400
133#define IEXTEN 0100000
134
135#define TCOOFF 0
136#define TCOON  1
137#define TCIOFF 2
138#define TCION  3
139
140#define TCIFLUSH  0
141#define TCOFLUSH  1
142#define TCIOFLUSH 2
143
144#define TCSANOW   0
145#define TCSADRAIN 1
146#define TCSAFLUSH 2
147
148#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
149#define EXTA    0000016
150#define EXTB    0000017
151#define CBAUD   0010017
152#define CBAUDEX 0010000
153#define CIBAUD  002003600000
154#define CMSPAR  010000000000
155#define CRTSCTS 020000000000
156
157#define XCASE   0000004
158#define ECHOCTL 0001000
159#define ECHOPRT 0002000
160#define ECHOKE  0004000
161#define FLUSHO  0010000
162#define PENDIN  0040000
163#define EXTPROC 0200000
164
165#define XTABS  0014000
166#endif
167