1#define _IOC(a,b,c,d) ( ((a)<<30) | ((b)<<8) | (c) | ((d)<<16) )
2#define _IOC_NONE  0U
3#define _IOC_WRITE 1U
4#define _IOC_READ  2U
5
6#define _IO(a,b) _IOC(_IOC_NONE,(a),(b),0)
7#define _IOW(a,b,c) _IOC(_IOC_WRITE,(a),(b),sizeof(c))
8#define _IOR(a,b,c) _IOC(_IOC_READ,(a),(b),sizeof(c))
9#define _IOWR(a,b,c) _IOC(_IOC_READ|_IOC_WRITE,(a),(b),sizeof(c))
10
11#define FIOCLEX             _IO('f',  1)
12#define FIONCLEX            _IO('f',  2)
13#define FIOASYNC            _IOW('f', 125, int)
14#define FIONBIO             _IOW('f', 126, int)
15#define FIONREAD            _IOR('f', 127, int)
16#define TIOCINQ             FIONREAD
17#define FIOQSIZE            _IOR('f', 128, char[8])
18
19#define TCGETA              _IOR('t', 23, char[18])
20#define TCSETA              _IOW('t', 24, char[18])
21#define TCSETAW             _IOW('t', 25, char[18])
22#define TCSETAF             _IOW('t', 28, char[18])
23
24#define TCSBRK              _IO('t', 29)
25#define TCXONC              _IO('t', 30)
26#define TCFLSH              _IO('t', 31)
27
28#define TIOCSWINSZ          _IOW('t', 103, char[8])
29#define TIOCGWINSZ          _IOR('t', 104, char[8])
30#define TIOCSTART           _IO('t',  110)
31#define TIOCSTOP            _IO('t',  111)
32#define TIOCOUTQ            _IOR('t', 115, int)
33
34#define TIOCSPGRP           _IOW('t', 118, int)
35#define TIOCGPGRP           _IOR('t', 119, int)
36
37#define TIOCEXCL            _IO('T', 12)
38#define TIOCNXCL            _IO('T', 13)
39#define TIOCSCTTY           _IO('T', 14)
40
41#define TIOCSTI             _IOW('T', 18, char)
42#define TIOCMGET            _IOR('T', 21, unsigned int)
43#define TIOCMBIS            _IOW('T', 22, unsigned int)
44#define TIOCMBIC            _IOW('T', 23, unsigned int)
45#define TIOCMSET            _IOW('T', 24, unsigned int)
46#define TIOCM_LE            0x001
47#define TIOCM_DTR           0x002
48#define TIOCM_RTS           0x004
49#define TIOCM_ST            0x008
50#define TIOCM_SR            0x010
51#define TIOCM_CTS           0x020
52#define TIOCM_CAR           0x040
53#define TIOCM_RNG           0x080
54#define TIOCM_DSR           0x100
55#define TIOCM_CD            TIOCM_CAR
56#define TIOCM_RI            TIOCM_RNG
57#define TIOCM_OUT1          0x2000
58#define TIOCM_OUT2          0x4000
59#define TIOCM_LOOP          0x8000
60
61#define TIOCGSOFTCAR        _IOR('T', 25, unsigned int)
62#define TIOCSSOFTCAR        _IOW('T', 26, unsigned int)
63#define TIOCLINUX           _IOW('T', 28, char)
64#define TIOCCONS            _IO('T',  29)
65#define TIOCGSERIAL         _IOR('T', 30, char[60])
66#define TIOCSSERIAL         _IOW('T', 31, char[60])
67#define TIOCPKT             _IOW('T', 32, int)
68#define TIOCPKT_DATA        0
69#define TIOCPKT_FLUSHREAD   1
70#define TIOCPKT_FLUSHWRITE  2
71#define TIOCPKT_STOP        4
72#define TIOCPKT_START       8
73#define TIOCPKT_NOSTOP      16
74#define TIOCPKT_DOSTOP      32
75#define TIOCPKT_IOCTL       64
76
77#define TIOCNOTTY           _IO('T',  34)
78#define TIOCSETD            _IOW('T', 35, int)
79#define TIOCGETD            _IOR('T', 36, int)
80#define TCSBRKP             _IOW('T', 37, int)
81#define TIOCSBRK            _IO('T',  39)
82#define TIOCCBRK            _IO('T',  40)
83#define TIOCGSID            _IOR('T', 41, int)
84#define TCGETS              _IO('T', 1)
85#define TCSETS              _IO('T', 2)
86#define TCSETSW             _IO('T', 3)
87#define TCSETSF             _IO('T', 4)
88#define TIOCGRS485          _IOR('T', 46, char[32])
89#define TIOCSRS485          _IOWR('T', 47, char[32])
90#define TIOCGPTN            _IOR('T', 48, unsigned int)
91#define TIOCSPTLCK          _IOW('T', 49, int)
92#define TIOCGDEV            _IOR('T', 50, unsigned int)
93#define TIOCSIG             _IOW('T', 54, int)
94#define TIOCVHANGUP         _IO('T',  55)
95#define TIOCGPKT            _IOR('T', 56, int)
96#define TIOCGPTLCK          _IOR('T', 57, int)
97#define TIOCGEXCL           _IOR('T', 64, int)
98
99#define TIOCSERCONFIG       _IO('T',  83)
100#define TIOCSERGWILD        _IOR('T', 84, int)
101#define TIOCSERSWILD        _IOW('T', 85, int)
102#define TIOCGLCKTRMIOS      _IO('T',  86)
103#define TIOCSLCKTRMIOS      _IO('T',  87)
104#define TIOCSERGSTRUCT      _IOR('T', 88, char[216])
105#define TIOCSERGETLSR       _IOR('T', 89, unsigned int)
106#define TIOCSER_TEMT        0x01
107#define TIOCSERGETMULTI     _IOR('T', 90, char[168])
108#define TIOCSERSETMULTI     _IOW('T', 91, char[168])
109
110#define TIOCMIWAIT          _IO('T', 92)
111#define TIOCGICOUNT         _IO('T', 93)
112
113struct winsize {
114    unsigned short ws_row;
115    unsigned short ws_col;
116    unsigned short ws_xpixel;
117    unsigned short ws_ypixel;
118};
119
120#define N_TTY           0
121#define N_SLIP          1
122#define N_MOUSE         2
123#define N_PPP           3
124#define N_STRIP         4
125#define N_AX25          5
126#define N_X25           6
127#define N_6PACK         7
128#define N_MASC          8
129#define N_R3964         9
130#define N_PROFIBUS_FDL  10
131#define N_IRDA          11
132#define N_SMSBLOCK      12
133#define N_HDLC          13
134#define N_SYNC_PPP      14
135#define N_HCI           15
136
137#define FIOGETOWN       _IOR('f', 123, int)
138#define FIOSETOWN       _IOW('f', 124, int)
139
140#define SIOCATMARK      _IOR('s', 7, int)
141#define SIOCSPGRP       _IOW('s', 8, int)
142#define SIOCGPGRP       _IOW('s', 9, int)
143#define SIOCGSTAMP      _IOR('s', 100, char[8])
144
145#define SIOCADDRT       0x890B
146#define SIOCDELRT       0x890C
147#define SIOCRTMSG       0x890D
148
149#define SIOCGIFNAME     0x8910
150#define SIOCSIFLINK     0x8911
151#define SIOCGIFCONF     0x8912
152#define SIOCGIFFLAGS    0x8913
153#define SIOCSIFFLAGS    0x8914
154#define SIOCGIFADDR     0x8915
155#define SIOCSIFADDR     0x8916
156#define SIOCGIFDSTADDR  0x8917
157#define SIOCSIFDSTADDR  0x8918
158#define SIOCGIFBRDADDR  0x8919
159#define SIOCSIFBRDADDR  0x891a
160#define SIOCGIFNETMASK  0x891b
161#define SIOCSIFNETMASK  0x891c
162#define SIOCGIFMETRIC   0x891d
163#define SIOCSIFMETRIC   0x891e
164#define SIOCGIFMEM      0x891f
165#define SIOCSIFMEM      0x8920
166#define SIOCGIFMTU      0x8921
167#define SIOCSIFMTU      0x8922
168#define SIOCSIFNAME     0x8923
169#define SIOCSIFHWADDR   0x8924
170#define SIOCGIFENCAP    0x8925
171#define SIOCSIFENCAP    0x8926
172#define SIOCGIFHWADDR   0x8927
173#define SIOCGIFSLAVE    0x8929
174#define SIOCSIFSLAVE    0x8930
175#define SIOCADDMULTI    0x8931
176#define SIOCDELMULTI    0x8932
177#define SIOCGIFINDEX    0x8933
178#define SIOGIFINDEX     SIOCGIFINDEX
179#define SIOCSIFPFLAGS   0x8934
180#define SIOCGIFPFLAGS   0x8935
181#define SIOCDIFADDR     0x8936
182#define SIOCSIFHWBROADCAST 0x8937
183#define SIOCGIFCOUNT    0x8938
184
185#define SIOCGIFBR       0x8940
186#define SIOCSIFBR       0x8941
187
188#define SIOCGIFTXQLEN   0x8942
189#define SIOCSIFTXQLEN   0x8943
190
191#define SIOCDARP        0x8953
192#define SIOCGARP        0x8954
193#define SIOCSARP        0x8955
194
195#define SIOCDRARP       0x8960
196#define SIOCGRARP       0x8961
197#define SIOCSRARP       0x8962
198
199#define SIOCGIFMAP      0x8970
200#define SIOCSIFMAP      0x8971
201
202#define SIOCADDDLCI     0x8980
203#define SIOCDELDLCI     0x8981
204
205#define SIOCDEVPRIVATE      0x89F0
206#define SIOCPROTOPRIVATE    0x89E0
207