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