1 /*
2  * Copyright (c) 2005-2020 Rich Felker, et al.
3  *
4  * SPDX-License-Identifier: MIT
5  *
6  * Note: From the musl project, stripped down and repackaged with HOST_/host_ prepended
7  */
8 
9 #undef HOST_NCCS
10 #define HOST_NCCS 19
11 struct host_termios {
12 	host_tcflag_t c_iflag;
13 	host_tcflag_t c_oflag;
14 	host_tcflag_t c_cflag;
15 	host_tcflag_t c_lflag;
16 	host_cc_t c_cc[HOST_NCCS];
17 	host_cc_t c_line;
18 	host_speed_t __c_ispeed;
19 	host_speed_t __c_ospeed;
20 };
21 
22 #define HOST_VINTR     0
23 #define HOST_VQUIT     1
24 #define HOST_VERASE    2
25 #define HOST_VKILL     3
26 #define HOST_VEOF      4
27 #define HOST_VMIN      5
28 #define HOST_VEOL      6
29 #define HOST_VTIME     7
30 #define HOST_VEOL2     8
31 #define HOST_VSWTC     9
32 #define HOST_VWERASE  10
33 #define HOST_VREPRINT 11
34 #define HOST_VSUSP    12
35 #define HOST_VSTART   13
36 #define HOST_VSTOP    14
37 #define HOST_VLNEXT   15
38 #define HOST_VDISCARD 16
39 
40 #define HOST_IGNBRK  0000001
41 #define HOST_BRKINT  0000002
42 #define HOST_IGNPAR  0000004
43 #define HOST_PARMRK  0000010
44 #define HOST_INPCK   0000020
45 #define HOST_ISTRIP  0000040
46 #define HOST_INLCR   0000100
47 #define HOST_IGNCR   0000200
48 #define HOST_ICRNL   0000400
49 #define HOST_IXON    0001000
50 #define HOST_IXOFF   0002000
51 #define HOST_IXANY   0004000
52 #define HOST_IUCLC   0010000
53 #define HOST_IMAXBEL 0020000
54 #define HOST_IUTF8   0040000
55 
56 #define HOST_OPOST  0000001
57 #define HOST_ONLCR  0000002
58 #define HOST_OLCUC  0000004
59 #define HOST_OCRNL  0000010
60 #define HOST_ONOCR  0000020
61 #define HOST_ONLRET 0000040
62 #define HOST_OFILL  0000100
63 #define HOST_OFDEL  0000200
64 #if defined(_GNU_SOURCE) || defined(_BSD_SOURCE) || defined(_XOPEN_SOURCE)
65 #define HOST_NLDLY  0001400
66 #define HOST_NL0    0000000
67 #define HOST_NL1    0000400
68 #define HOST_NL2    0001000
69 #define HOST_NL3    0001400
70 #define HOST_TABDLY 0006000
71 #define HOST_TAB0   0000000
72 #define HOST_TAB1   0002000
73 #define HOST_TAB2   0004000
74 #define HOST_TAB3   0006000
75 #define HOST_CRDLY  0030000
76 #define HOST_CR0    0000000
77 #define HOST_CR1    0010000
78 #define HOST_CR2    0020000
79 #define HOST_CR3    0030000
80 #define HOST_FFDLY  0040000
81 #define HOST_FF0    0000000
82 #define HOST_FF1    0040000
83 #define HOST_BSDLY  0100000
84 #define HOST_BS0    0000000
85 #define HOST_BS1    0100000
86 #endif
87 
88 #define HOST_VTDLY  0200000
89 #define HOST_VT0    0000000
90 #define HOST_VT1    0200000
91 
92 #define HOST_B0       0000000
93 #define HOST_B50      0000001
94 #define HOST_B75      0000002
95 #define HOST_B110     0000003
96 #define HOST_B134     0000004
97 #define HOST_B150     0000005
98 #define HOST_B200     0000006
99 #define HOST_B300     0000007
100 #define HOST_B600     0000010
101 #define HOST_B1200    0000011
102 #define HOST_B1800    0000012
103 #define HOST_B2400    0000013
104 #define HOST_B4800    0000014
105 #define HOST_B9600    0000015
106 #define HOST_B19200   0000016
107 #define HOST_B38400   0000017
108 
109 #define HOST_B57600   00020
110 #define HOST_B115200  00021
111 #define HOST_B230400  00022
112 #define HOST_B460800  00023
113 #define HOST_B500000  00024
114 #define HOST_B576000  00025
115 #define HOST_B921600  00026
116 #define HOST_B1000000 00027
117 #define HOST_B1152000 00030
118 #define HOST_B1500000 00031
119 #define HOST_B2000000 00032
120 #define HOST_B2500000 00033
121 #define HOST_B3000000 00034
122 #define HOST_B3500000 00035
123 #define HOST_B4000000 00036
124 
125 #define HOST_CSIZE  00001400
126 #define HOST_CS5    00000000
127 #define HOST_CS6    00000400
128 #define HOST_CS7    00001000
129 #define HOST_CS8    00001400
130 #define HOST_CSTOPB 00002000
131 #define HOST_CREAD  00004000
132 #define HOST_PARENB 00010000
133 #define HOST_PARODD 00020000
134 #define HOST_HUPCL  00040000
135 #define HOST_CLOCAL 00100000
136 
137 #define HOST_ECHOE   0x00000002
138 #define HOST_ECHOK   0x00000004
139 #define HOST_ECHO    0x00000008
140 #define HOST_ECHONL  0x00000010
141 #define HOST_ISIG    0x00000080
142 #define HOST_ICANON  0x00000100
143 #define HOST_IEXTEN  0x00000400
144 #define HOST_TOSTOP  0x00400000
145 #define HOST_NOFLSH  0x80000000
146 
147 #define HOST_TCOOFF 0
148 #define HOST_TCOON  1
149 #define HOST_TCIOFF 2
150 #define HOST_TCION  3
151 
152 #define HOST_TCIFLUSH  0
153 #define HOST_TCOFLUSH  1
154 #define HOST_TCIOFLUSH 2
155 
156 #define HOST_TCSANOW   0
157 #define HOST_TCSADRAIN 1
158 #define HOST_TCSAFLUSH 2
159 
160 #define HOST_EXTA    0000016
161 #define HOST_EXTB    0000017
162 #define HOST_CBAUD   00377
163 #define HOST_CBAUDEX 0000020
164 #define HOST_CIBAUD  077600000
165 #define HOST_CMSPAR  010000000000
166 #define HOST_CRTSCTS 020000000000
167 
168 #define HOST_XCASE   0x00004000
169 #define HOST_ECHOCTL 0x00000040
170 #define HOST_ECHOPRT 0x00000020
171 #define HOST_ECHOKE  0x00000001
172 #define HOST_FLUSHO  0x00800000
173 #define HOST_PENDIN  0x20000000
174 #define HOST_EXTPROC 0x10000000
175 
176 #define HOST_XTABS   00006000
177 #define HOST_TIOCSER_TEMT 1
178 
179 #define _IOC(a,b,c,d) ( ((a)<<29) | ((b)<<8) | (c) | ((d)<<16) )
180 #define _IOC_NONE  1U
181 #define _IOC_WRITE 4U
182 #define _IOC_READ  2U
183 
184 #define _IO(a,b) _IOC(_IOC_NONE,(a),(b),0)
185 #define _IOW(a,b,c) _IOC(_IOC_WRITE,(a),(b),sizeof(c))
186 #define _IOR(a,b,c) _IOC(_IOC_READ,(a),(b),sizeof(c))
187 #define _IOWR(a,b,c) _IOC(_IOC_READ|_IOC_WRITE,(a),(b),sizeof(c))
188 
189 #define HOST_TCGETS	_IOR('t', 19, char[44])
190 #define HOST_TCSETS	_IOW('t', 20, char[44])
191 #define HOST_TCSETSW	_IOW('t', 21, char[44])
192 #define HOST_TCSETSF	_IOW('t', 22, char[44])
193