1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
|
/* Copyright (C) 1999, 2000 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, write to the Free
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA. */
#ifndef _SYS_IOCTL_H
# error "Never use <bits/ioctls.h> directly; include <sys/ioctl.h> instead."
#endif
#define IOCPARM_MASK 0x7f /* parameters must be < 128 bytes */
#define IOC_VOID 0x20000000 /* no parameters */
#define IOC_OUT 0x40000000 /* copy out parameters */
#define IOC_IN (0x40000000<<1) /* copy in parameters */
#define IOC_INOUT (IOC_IN|IOC_OUT)
#define _IO(x,y) (IOC_VOID|(x<<8)|y)
#define _IOR(x,y,t) (IOC_OUT|((sizeof(t)&IOCPARM_MASK)<<16)|(x<<8)|y)
#define _IOW(x,y,t) (IOC_IN|((sizeof(t)&IOCPARM_MASK)<<16)|(x<<8)|y)
#define _IOWR(x,y,t) (IOC_INOUT|((sizeof(t)&IOCPARM_MASK)<<16)|(x<<8)|y)
#define TIOCGETD _IOR('t', 0, int) /* get line discipline */
#define TIOCSETD _IOW('t', 1, int) /* set line discipline */
#define TIOCHPCL _IO('t', 2) /* hang up on last close */
#define TIOCMODG _IOR('t', 3, int) /* get modem control state */
#define TIOCMODS _IOW('t', 4, int) /* set modem control state */
#define TIOCGETP _IOR('t', 8,struct sgttyb)/* get parameters -- gtty */
#define TIOCSETP _IOW('t', 9,struct sgttyb)/* set parameters -- stty */
#define TIOCSETN _IOW('t',10,struct sgttyb)/* as above, but no flushtty */
#define TIOCEXCL _IO('t', 13) /* set exclusive use of tty */
#define TIOCNXCL _IO('t', 14) /* reset exclusive use of tty */
#define TIOCFLUSH _IOW('t', 16, int) /* flush buffers */
#define TIOCSETC _IOW('t',17,struct tchars)/* set special characters */
#define TIOCGETC _IOR('t',18,struct tchars)/* get special characters */
#define TANDEM 0x00000001 /* send stopc on out q full */
#define CBREAK 0x00000002 /* half-cooked mode */
#define LCASE 0x00000004 /* simulate lower case */
#define CRMOD 0x00000010 /* map \r to \r\n on output */
#define RAW 0x00000020 /* no i/o processing */
#define ODDP 0x00000040 /* get/send odd parity */
#define EVENP 0x00000080 /* get/send even parity */
#define ANYP 0x000000c0 /* get any parity/send none */
#define CRDELAY 0x00000300 /* \r delay */
#define TBDELAY 0x00000c00 /* horizontal tab delay */
#define XTABS 0x00000c00 /* expand tabs on output */
#define BSDELAY 0x00001000 /* \b delay */
#define VTDELAY 0x00002000 /* vertical tab delay */
#define NLDELAY 0x0000c000 /* \n delay */
#define NL2 0x00008000 /* vt05 */
#define NL3 0x0000c000
#define ALLDELAY (NLDELAY|TBDELAY|CRDELAY|VTDELAY|BSDELAY)
#define PRTERA 0x00020000 /* \ ... / erase */
#define CRTERA 0x00040000 /* " \b " to wipe out char */
#define TILDE 0x00080000 /* hazeltine tilde kludge */
#define LITOUT 0x00200000 /* literal output */
#define CRTBS 0x00400000 /* do backspacing for crt */
#define MDMBUF 0x00800000 /* dtr pacing */
#define NOHANG 0x01000000 /* no SIGHUP on carrier drop */
#define L001000 0x02000000
#define CRTKIL 0x04000000 /* kill line with " \b " */
#define PASS8 0x08000000
#define CTLECH 0x10000000 /* echo control chars as ^X */
#define DECCTQ 0x40000000 /* only ^Q starts after ^S */
#define NOFLUSH 0x80000000 /* no output flush on signal */
/* SYS V REL. 4 PTY IOCTLs */
#define UNLKPT _IO('t',70) /* unlock slave pty */
#define ISPTM _IO('t',71) /* ret. maj+min of pty master */
#define ISPTS _IO('t',73) /* return maj+min of slave */
#define GRTPT _IO('t',74) /* grantpt slave pty*/
#define RLOGIND _IO('t',75) /* for rlogind protocol in ptydd */
#define TELNETDP _IO('t',76) /* for telnetd protocol in ptydd */
#define TIOCCONS _IOW('t', 98, int) /* become virtual console */
#define TIOCGSID _IOR('t', 72, int) /* get the tty session id */
/* locals, from 127 down */
#define TIOCLBIS _IOW('t', 127, int) /* bis local mode bits */
#define TIOCLBIC _IOW('t', 126, int) /* bic local mode bits */
#define TIOCLSET _IOW('t', 125, int) /* set entire mode word */
#define TIOCLGET _IOR('t', 124, int) /* get local modes */
#define LCRTBS (CRTBS>>16)
#define LPRTERA (PRTERA>>16)
#define LCRTERA (CRTERA>>16)
#define LTILDE (TILDE>>16)
#define LMDMBUF (MDMBUF>>16)
#define LLITOUT (LITOUT>>16)
#define LTOSTOP (TOSTOP>>16)
#define LFLUSHO (FLUSHO>>16)
#define LNOHANG (NOHANG>>16)
#define LCRTKIL (CRTKIL>>16)
#define LPASS8 (PASS8>>16)
#define LCTLECH (CTLECH>>16)
#define LPENDIN (PENDIN>>16)
#define LDECCTQ (DECCTQ>>16)
#define LNOFLSH (NOFLUSH>>16)
#define TIOCSBRK _IO('t', 123) /* set break bit */
#define TIOCCBRK _IO('t', 122) /* clear break bit */
#define TIOCSDTR _IO('t', 121) /* set data terminal ready */
#define TIOCCDTR _IO('t', 120) /* clear data terminal ready */
#define TIOCGPGRP _IOR('t', 119, int) /* get process group */
#define TIOCSPGRP _IOW('t', 118, int) /* set process gorup */
#define TIOCSLTC _IOW('t',117,struct ltchars)/* set local special chars */
#define TIOCGLTC _IOR('t',116,struct ltchars)/* get local special chars */
#define TIOCOUTQ _IOR('t', 115, int) /* output queue size */
#define TIOCSTI _IOW('t', 114, char) /* simulate terminal input */
#define TIOCNOTTY _IO('t', 113) /* void tty association */
#define TIOCPKT _IOW('t', 112, int) /* pty: set/clear packet mode */
#define TIOCPKT_DATA 0x00 /* data packet */
#define TIOCPKT_FLUSHREAD 0x01 /* flush packet */
#define TIOCPKT_FLUSHWRITE 0x02 /* flush packet */
#define TIOCPKT_STOP 0x04 /* stop output */
#define TIOCPKT_START 0x08 /* start output */
#define TIOCPKT_NOSTOP 0x10 /* no more ^S, ^Q */
#define TIOCPKT_DOSTOP 0x20 /* now do ^S ^Q */
#define TIOCSTOP _IO('t', 111) /* stop output, like ^S */
#define TIOCSTART _IO('t', 110) /* start output, like ^Q */
#define TIOCMSET _IOW('t', 109, int) /* set all modem bits */
#define TIOCMBIS _IOW('t', 108, int) /* bis modem bits */
#define TIOCMBIC _IOW('t', 107, int) /* bic modem bits */
#define TIOCMGET _IOR('t', 106, int) /* get all modem bits */
#define TIOCREMOTE _IOW('t', 105, int) /* remote input editing */
#define TIOCGWINSZ _IOR('t', 104, struct winsize) /* get window size */
#define TIOCSWINSZ _IOW('t', 103, struct winsize) /* set window size */
#define TIOCUCNTL _IOW('t', 102, int) /* pty: set/clr usr cntl mode */
/* SLIP (Serial Line IP) ioctl's */
#define SLIOCGUNIT _IOR('t', 101, int) /* get slip unit number */
#define SLIOCSFLAGS _IOW('t', 89, int) /* set configuration flags */
#define SLIOCGFLAGS _IOR('t', 90, int) /* get configuration flags */
#define SLIOCSATTACH _IOWR('t', 91, int) /* Attach slip i.f. to tty */
#define UIOCCMD(n) _IO('u', n) /* usr cntl op "n" */
#define OTTYDISC 0 /* old, v7 std tty driver */
#define NETLDISC 1 /* line discip for berk net */
#define NTTYDISC 2 /* new tty discipline */
#define TABLDISC 3 /* tablet discipline */
#define SLIPDISC 4 /* serial IP discipline */
#define FIOCLEX _IO('f', 1) /* set close on exec */
#define FIONCLEX _IO('f', 2) /* clear close on exec */
/* another local */
#define FIONREAD _IOR('f', 127, int) /* get # bytes to read */
#define FIONBIO _IOW('f', 126, int) /* set/clear non-blocking i/o */
#define FIOASYNC _IOW('f', 125, int) /* set/clear async i/o */
#define FIOSETOWN _IOW('f', 124, int) /* set owner */
#define FIOGETOWN _IOR('f', 123, int) /* get owner */
#define FIOASYNCQX _IOW('f', 122, int) /* set/clear async queueing */
/* socket i/o controls */
#define SIOCSHIWAT _IOW('s', 0, int) /* set high watermark */
#define SIOCGHIWAT _IOR('s', 1, int) /* get high watermark */
#define SIOCSLOWAT _IOW('s', 2, int) /* set low watermark */
#define SIOCGLOWAT _IOR('s', 3, int) /* get low watermark */
#define SIOCATMARK _IOR('s', 7, int) /* at oob mark? */
#define SIOCSPGRP _IOW('s', 8, int) /* set process group */
#define SIOCGPGRP _IOR('s', 9, int) /* get process group */
#define SIOCADDRT (int)_IOW('r', 10, struct ortentry) /* add route */
#define SIOCDELRT (int)_IOW('r', 11, struct ortentry) /* delete route */
#define SIOCSIFADDR (int)_IOW('i', 12, struct oifreq) /* set ifnet address */
#define OSIOCGIFADDR (int)_IOWR('i',13, struct oifreq) /* get ifnet address */
#define SIOCGIFADDR (int)_IOWR('i',33, struct oifreq) /* get ifnet address */
#define SIOCSIFDSTADDR (int)_IOW('i', 14, struct oifreq) /* set p-p address */
#define OSIOCGIFDSTADDR (int)_IOWR('i',15, struct oifreq) /* get p-p address */
#define SIOCGIFDSTADDR (int)_IOWR('i',34, struct oifreq) /* get p-p address */
#define SIOCSIFFLAGS (int)_IOW('i', 16, struct oifreq) /* set ifnet flags */
#define SIOCGIFFLAGS (int)_IOWR('i',17, struct oifreq) /* get ifnet flags */
#define OSIOCGIFBRDADDR (int)_IOWR('i',18, struct oifreq) /* get broadcast addr */
#define SIOCGIFBRDADDR (int)_IOWR('i',35, struct oifreq) /* get broadcast addr */
#define SIOCSIFBRDADDR (int)_IOW('i',19, struct oifreq) /* set broadcast addr */
#define OSIOCGIFCONF (int)_IOWR('i',20, struct ifconf) /* get ifnet list */
#define CSIOCGIFCONF (int)_IOWR('i',36, struct ifconf) /* get ifnet list */
#define SIOCGIFCONF (int)_IOWR('i',69, struct ifconf) /* get ifnet list */
#define OSIOCGIFNETMASK (int)_IOWR('i',21, struct oifreq) /* get net addr mask */
#define SIOCGIFNETMASK (int)_IOWR('i',37, struct oifreq) /* get net addr mask */
#define SIOCSIFNETMASK (int)_IOW('i',22, struct oifreq) /* set net addr mask */
#define SIOCGIFMETRIC (int)_IOWR('i',23, struct oifreq) /* get IF metric */
#define SIOCSIFMETRIC (int)_IOW('i',24, struct oifreq) /* set IF metric */
#define SIOCDIFADDR (int)_IOW('i',25, struct oifreq) /* delete IF addr */
#define SIOCAIFADDR (int)_IOW('i',26, struct ifaliasreq) /* add/chg IF alias */
#define SIOCSIFSUBCHAN (int)_IOW('i',27, struct oifreq) /* set subchannel adr.*/
#define SIOCSIFNETDUMP (int)_IOW('i',28, struct oifreq) /* set netdump fastwrt*/
#define SIOCSARP (int)_IOW('i', 30, struct arpreq) /* set arp entry */
#define OSIOCGARP (int)_IOWR('i',31, struct arpreq) /* get arp entry */
#define SIOCGARP (int)_IOWR('i',38, struct arpreq) /* get arp entry */
#define SIOCDARP (int)_IOW('i', 32, struct arpreq) /* delete arp entry */
#define SIOCSIFOPTIONS (int)_IOW('i', 41, struct oifreq) /* set ifnet options */
#define SIOCGIFOPTIONS (int)_IOWR('i',42, struct oifreq) /* get ifnet options */
#define SIOCADDMULTI (int)_IOW('i', 49, struct ifreq) /* add multicast addr */
#define SIOCDELMULTI (int)_IOW('i', 50, struct ifreq) /* del multicast addr */
#define SIOCGETVIFCNT (int)_IOWR('u', 51, struct sioc_vif_req)/* vif pkt cnt */
#define SIOCGETSGCNT (int)_IOWR('u', 52, struct sioc_sg_req) /* s,g pkt cnt */
#define SIOCADDNETID (int)_IOW('i',87, struct oifreq) /* set netids */
#define SIOCSIFMTU (int)_IOW('i',88, struct oifreq) /* set mtu */
#define SIOCGIFMTU (int)_IOWR('i',86, struct oifreq) /* get mtu */
#define SIOCSNETOPT (int)_IOW('i', 90, struct optreq) /* set network option */
#define SIOCGNETOPT (int)_IOWR('i', 91, struct optreq) /* get network option */
#define SIOCDNETOPT (int)_IOWR('i', 92, struct optreq) /* set default */
#define SIOCSX25XLATE (int)_IOW('i', 99, struct oifreq) /* set xlate tab */
#define SIOCGX25XLATE (int)_IOWR('i',100, struct oifreq) /* get xlate tab */
#define SIOCDX25XLATE (int)_IOW('i', 101, struct oifreq) /* delete xlate tab */
#define SIOCIFDETACH (int)_IOW('i', 102, struct ifreq) /* detach an ifnet */
#define SIOCIFATTACH (int)_IOW('i', 103, struct ifreq) /* attach an ifnet */
#define SIOCGNMTUS (int)_IO('i',110) /* get NMTUs */
#define SIOCGETMTUS (int)_IO('i',111) /* get common_mtus */
#define SIOCADDMTU (int)_IOW('i',112, int) /* add mtu */
#define SIOCDELMTU (int)_IOW('i',113, int) /* delete mtu */
#define SIOCGIFGIDLIST (int)_IO('i', 104) /* get gidlist */
#define SIOCSIFGIDLIST (int)_IO('i', 105) /* set gidlist */
#define SIOCGSIZIFCONF (int)_IOR('i', 106, int) /* get size for SIOCGIFCONF */
#define SIOCIF_ATM_UBR (int)_IOW('i',120,struct ifreq) /* set ubr rate */
#define SIOCIF_ATM_SNMPARP (int)_IOW('i',121,struct ifreq) /* atm snmp arp */
#define SIOCIF_ATM_IDLE (int)_IOW('i',122,struct ifreq) /* set idle time */
#define SIOCIF_ATM_DUMPARP (int)_IOW('i',123,struct ifreq) /* atm dump arp */
#define SIOCIF_ATM_SVC (int)_IOW('i',124,struct ifreq) /* atmif init */
#define SIOCIF_ATM_DARP (int)_IOW('i',125,struct ifreq) /* del atmarp */
#define SIOCIF_ATM_GARP (int)_IOW('i',126,struct ifreq) /* get atmarp */
#define SIOCIF_ATM_SARP (int)_IOW('i',127,struct ifreq) /* set atmarp */
#define SIOCGISNO (int)_IOWR('i',107, struct oifreq) /* get IF network options */
#define SIOCSISNO (int)_IOW('i', 108, struct oifreq) /* set IF network options */
#define SIOCGIFBAUDRATE (int)_IOWR('i', 109, struct oifreq) /* get ifnet's if_baudrate */
|