xref: /nrf52832-nimble/rt-thread/include/libc/libc_ioctl.h (revision 104654410c56c573564690304ae786df310c91fc)
1 /*
2  * Copyright (c) 2006-2018, RT-Thread Development Team
3  *
4  * SPDX-License-Identifier: Apache-2.0
5  */
6 
7 /*
8  * File      : libc_ioctl.h
9  *
10  * Change Logs:
11  * Date           Author       Notes
12  * 2017-01-21     Bernard      the first version
13  */
14 
15 #ifndef LIBC_IOCTL_H__
16 #define LIBC_IOCTL_H__
17 
18 #define _IOC(a,b,c,d) ( ((a)<<30) | ((b)<<8) | (c) | ((d)<<16) )
19 #define _IOC_NONE  0U
20 #define _IOC_WRITE 1U
21 #define _IOC_READ  2U
22 
23 #ifndef _WIN32
24 #define _IO(a,b)    _IOC(_IOC_NONE,(a),(b),0)
25 #define _IOW(a,b,c) _IOC(_IOC_WRITE,(a),(b),sizeof(c))
26 #define _IOR(a,b,c) _IOC(_IOC_READ,(a),(b),sizeof(c))
27 #define _IOWR(a,b,c) _IOC(_IOC_READ|_IOC_WRITE,(a),(b),sizeof(c))
28 
29 #define FIONREAD    _IOR('f', 127, int) /* get # bytes to read */
30 #define FIONBIO     _IOW('f', 126, int) /* set/clear non-blocking i/o */
31 #define FIONWRITE   _IOR('f', 121, int) /* get # bytes outstanding
32                          * in send queue. */
33 #endif
34 
35 #define TCGETS		0x5401
36 #define TCSETS		0x5402
37 #define TCSETSW		0x5403
38 #define TCSETSF		0x5404
39 #define TCGETA		0x5405
40 #define TCSETA		0x5406
41 #define TCSETAW		0x5407
42 #define TCSETAF		0x5408
43 #define TCSBRK		0x5409
44 #define TCXONC		0x540A
45 #define TCFLSH		0x540B
46 #define TIOCEXCL	0x540C
47 #define TIOCNXCL	0x540D
48 #define TIOCSCTTY	0x540E
49 #define TIOCGPGRP	0x540F
50 #define TIOCSPGRP	0x5410
51 #define TIOCOUTQ	0x5411
52 #define TIOCSTI		0x5412
53 #define TIOCGWINSZ	0x5413
54 #define TIOCSWINSZ	0x5414
55 #define TIOCMGET	0x5415
56 #define TIOCMBIS	0x5416
57 #define TIOCMBIC	0x5417
58 #define TIOCMSET	0x5418
59 #define TIOCGSOFTCAR	0x5419
60 #define TIOCSSOFTCAR	0x541A
61 // #define FIONREAD	0x541B
62 #define TIOCINQ		FIONREAD
63 #define TIOCLINUX	0x541C
64 #define TIOCCONS	0x541D
65 #define TIOCGSERIAL	0x541E
66 #define TIOCSSERIAL	0x541F
67 #define TIOCPKT		0x5420
68 // #define FIONBIO		0x5421
69 #define TIOCNOTTY	0x5422
70 #define TIOCSETD	0x5423
71 #define TIOCGETD	0x5424
72 #define TCSBRKP		0x5425
73 #define TIOCSBRK	0x5427
74 #define TIOCCBRK	0x5428
75 #define TIOCGSID	0x5429
76 #define TIOCGRS485	0x542E
77 #define TIOCSRS485	0x542F
78 #define TIOCGPTN	0x80045430
79 #define TIOCSPTLCK	0x40045431
80 #define TIOCGDEV	0x80045432
81 #define TCGETX		0x5432
82 #define TCSETX		0x5433
83 #define TCSETXF		0x5434
84 #define TCSETXW		0x5435
85 #define TIOCSIG		0x40045436
86 #define TIOCVHANGUP	0x5437
87 #define TIOCGPKT	0x80045438
88 #define TIOCGPTLCK	0x80045439
89 #define TIOCGEXCL	0x80045440
90 
91 #define FIONCLEX	0x5450
92 #define FIOCLEX		0x5451
93 
94 #ifndef _WIN32
95 #define FIOASYNC	0x5452
96 #endif
97 
98 #define TIOCSERCONFIG	0x5453
99 #define TIOCSERGWILD	0x5454
100 #define TIOCSERSWILD	0x5455
101 #define TIOCGLCKTRMIOS	0x5456
102 #define TIOCSLCKTRMIOS	0x5457
103 #define TIOCSERGSTRUCT	0x5458
104 #define TIOCSERGETLSR   0x5459
105 #define TIOCSERGETMULTI 0x545A
106 #define TIOCSERSETMULTI 0x545B
107 
108 #define TIOCMIWAIT	0x545C
109 #define TIOCGICOUNT	0x545D
110 #define FIOQSIZE	0x5460
111 
112 #define TIOCPKT_DATA		 0
113 #define TIOCPKT_FLUSHREAD	 1
114 #define TIOCPKT_FLUSHWRITE	 2
115 #define TIOCPKT_STOP		 4
116 #define TIOCPKT_START		 8
117 #define TIOCPKT_NOSTOP		16
118 #define TIOCPKT_DOSTOP		32
119 #define TIOCPKT_IOCTL		64
120 
121 #define TIOCSER_TEMT    0x01
122 
123 struct winsize {
124 	unsigned short ws_row;
125 	unsigned short ws_col;
126 	unsigned short ws_xpixel;
127 	unsigned short ws_ypixel;
128 };
129 
130 #define TIOCM_LE        0x001
131 #define TIOCM_DTR       0x002
132 #define TIOCM_RTS       0x004
133 #define TIOCM_ST        0x008
134 #define TIOCM_SR        0x010
135 #define TIOCM_CTS       0x020
136 #define TIOCM_CAR       0x040
137 #define TIOCM_RNG       0x080
138 #define TIOCM_DSR       0x100
139 #define TIOCM_CD        TIOCM_CAR
140 #define TIOCM_RI        TIOCM_RNG
141 #define TIOCM_OUT1      0x2000
142 #define TIOCM_OUT2      0x4000
143 #define TIOCM_LOOP      0x8000
144 
145 #define N_TTY           0
146 #define N_SLIP          1
147 #define N_MOUSE         2
148 #define N_PPP           3
149 #define N_STRIP         4
150 #define N_AX25          5
151 #define N_X25           6
152 #define N_6PACK         7
153 #define N_MASC          8
154 #define N_R3964         9
155 #define N_PROFIBUS_FDL  10
156 #define N_IRDA          11
157 #define N_SMSBLOCK      12
158 #define N_HDLC          13
159 #define N_SYNC_PPP      14
160 #define N_HCI           15
161 
162 #define FIOSETOWN       0x8901
163 #define SIOCSPGRP       0x8902
164 #define FIOGETOWN       0x8903
165 #define SIOCGPGRP       0x8904
166 // #define SIOCATMARK      0x8905
167 #define SIOCGSTAMP      0x8906
168 #define SIOCGSTAMPNS    0x8907
169 
170 #define SIOCADDRT       0x890B
171 #define SIOCDELRT       0x890C
172 #define SIOCRTMSG       0x890D
173 
174 #define SIOCGIFNAME     0x8910
175 #define SIOCSIFLINK     0x8911
176 #define SIOCGIFCONF     0x8912
177 #define SIOCGIFFLAGS    0x8913
178 #define SIOCSIFFLAGS    0x8914
179 #define SIOCGIFADDR     0x8915
180 #define SIOCSIFADDR     0x8916
181 #define SIOCGIFDSTADDR  0x8917
182 #define SIOCSIFDSTADDR  0x8918
183 #define SIOCGIFBRDADDR  0x8919
184 #define SIOCSIFBRDADDR  0x891a
185 #define SIOCGIFNETMASK  0x891b
186 #define SIOCSIFNETMASK  0x891c
187 #define SIOCGIFMETRIC   0x891d
188 #define SIOCSIFMETRIC   0x891e
189 #define SIOCGIFMEM      0x891f
190 #define SIOCSIFMEM      0x8920
191 #define SIOCGIFMTU      0x8921
192 #define SIOCSIFMTU      0x8922
193 #define SIOCSIFNAME     0x8923
194 #define SIOCSIFHWADDR   0x8924
195 #define SIOCGIFENCAP    0x8925
196 #define SIOCSIFENCAP    0x8926
197 #define SIOCGIFHWADDR   0x8927
198 #define SIOCGIFSLAVE    0x8929
199 #define SIOCSIFSLAVE    0x8930
200 #define SIOCADDMULTI    0x8931
201 #define SIOCDELMULTI    0x8932
202 #define SIOCGIFINDEX    0x8933
203 #define SIOGIFINDEX     SIOCGIFINDEX
204 #define SIOCSIFPFLAGS   0x8934
205 #define SIOCGIFPFLAGS   0x8935
206 #define SIOCDIFADDR     0x8936
207 #define SIOCSIFHWBROADCAST 0x8937
208 #define SIOCGIFCOUNT    0x8938
209 
210 #define SIOCGIFBR       0x8940
211 #define SIOCSIFBR       0x8941
212 
213 #define SIOCGIFTXQLEN   0x8942
214 #define SIOCSIFTXQLEN   0x8943
215 
216 #define SIOCDARP        0x8953
217 #define SIOCGARP        0x8954
218 #define SIOCSARP        0x8955
219 
220 #define SIOCDRARP       0x8960
221 #define SIOCGRARP       0x8961
222 #define SIOCSRARP       0x8962
223 
224 #define SIOCGIFMAP      0x8970
225 #define SIOCSIFMAP      0x8971
226 
227 #define SIOCADDDLCI     0x8980
228 #define SIOCDELDLCI     0x8981
229 
230 #define SIOCDEVPRIVATE		0x89F0
231 #define SIOCPROTOPRIVATE	0x89E0
232 
233 #endif
234 
235