Back to index

glibc  2.9
ioctls.h
Go to the documentation of this file.
00001 /* Copyright (C) 1999, 2000 Free Software Foundation, Inc.
00002    This file is part of the GNU C Library.
00003 
00004    The GNU C Library is free software; you can redistribute it and/or
00005    modify it under the terms of the GNU Lesser General Public
00006    License as published by the Free Software Foundation; either
00007    version 2.1 of the License, or (at your option) any later version.
00008 
00009    The GNU C Library is distributed in the hope that it will be useful,
00010    but WITHOUT ANY WARRANTY; without even the implied warranty of
00011    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00012    Lesser General Public License for more details.
00013 
00014    You should have received a copy of the GNU Lesser General Public
00015    License along with the GNU C Library; if not, write to the Free
00016    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
00017    02111-1307 USA.  */
00018 
00019 #ifndef _SYS_IOCTL_H
00020 # error "Never use <bits/ioctls.h> directly; include <sys/ioctl.h> instead."
00021 #endif
00022 
00023 
00024 #define       IOCPARM_MASK  0x7f          /* parameters must be < 128 bytes */
00025 #define       IOC_VOID      0x20000000    /* no parameters */
00026 #define       IOC_OUT              0x40000000    /* copy out parameters */
00027 #define       IOC_IN        (0x40000000<<1)      /* copy in parameters */
00028 #define       IOC_INOUT     (IOC_IN|IOC_OUT)
00029 #define       _IO(x,y)      (IOC_VOID|(x<<8)|y)
00030 #define       _IOR(x,y,t)   (IOC_OUT|((sizeof(t)&IOCPARM_MASK)<<16)|(x<<8)|y)
00031 #define       _IOW(x,y,t)   (IOC_IN|((sizeof(t)&IOCPARM_MASK)<<16)|(x<<8)|y)
00032 #define       _IOWR(x,y,t)  (IOC_INOUT|((sizeof(t)&IOCPARM_MASK)<<16)|(x<<8)|y)
00033 
00034 #define       TIOCGETD      _IOR('t', 0, int)    /* get line discipline */
00035 #define       TIOCSETD      _IOW('t', 1, int)    /* set line discipline */
00036 #define       TIOCHPCL      _IO('t', 2)          /* hang up on last close */
00037 #define       TIOCMODG      _IOR('t', 3, int)    /* get modem control state */
00038 #define       TIOCMODS      _IOW('t', 4, int)    /* set modem control state */
00039 #define       TIOCGETP      _IOR('t', 8,struct sgttyb)/* get parameters -- gtty */
00040 #define       TIOCSETP      _IOW('t', 9,struct sgttyb)/* set parameters -- stty */
00041 #define       TIOCSETN      _IOW('t',10,struct sgttyb)/* as above, but no flushtty */
00042 #define       TIOCEXCL      _IO('t', 13)         /* set exclusive use of tty */
00043 #define       TIOCNXCL      _IO('t', 14)         /* reset exclusive use of tty */
00044 #define       TIOCFLUSH     _IOW('t', 16, int)   /* flush buffers */
00045 #define       TIOCSETC      _IOW('t',17,struct tchars)/* set special characters */
00046 #define       TIOCGETC      _IOR('t',18,struct tchars)/* get special characters */
00047 #define              TANDEM        0x00000001    /* send stopc on out q full */
00048 #define              CBREAK        0x00000002    /* half-cooked mode */
00049 #define              LCASE         0x00000004    /* simulate lower case */
00050 #define              CRMOD         0x00000010    /* map \r to \r\n on output */
00051 #define              RAW           0x00000020    /* no i/o processing */
00052 #define              ODDP          0x00000040    /* get/send odd parity */
00053 #define              EVENP         0x00000080    /* get/send even parity */
00054 #define              ANYP          0x000000c0    /* get any parity/send none */
00055 #define              CRDELAY              0x00000300    /* \r delay */
00056 #define              TBDELAY              0x00000c00    /* horizontal tab delay */
00057 #define              XTABS         0x00000c00    /* expand tabs on output */
00058 #define              BSDELAY              0x00001000    /* \b delay */
00059 #define              VTDELAY              0x00002000    /* vertical tab delay */
00060 #define              NLDELAY              0x0000c000    /* \n delay */
00061 #define                     NL2    0x00008000    /* vt05 */
00062 #define                     NL3    0x0000c000
00063 #define              ALLDELAY      (NLDELAY|TBDELAY|CRDELAY|VTDELAY|BSDELAY)
00064 #define              PRTERA        0x00020000    /* \ ... / erase */
00065 #define              CRTERA        0x00040000    /* " \b " to wipe out char */
00066 #define              TILDE         0x00080000    /* hazeltine tilde kludge */
00067 #define              LITOUT        0x00200000    /* literal output */
00068 #define              CRTBS         0x00400000    /* do backspacing for crt */
00069 #define              MDMBUF        0x00800000    /* dtr pacing */
00070 #define              NOHANG        0x01000000    /* no SIGHUP on carrier drop */
00071 #define              L001000              0x02000000
00072 #define              CRTKIL        0x04000000    /* kill line with " \b " */
00073 #define              PASS8         0x08000000
00074 #define              CTLECH        0x10000000    /* echo control chars as ^X */
00075 #define              DECCTQ        0x40000000    /* only ^Q starts after ^S */
00076 #define              NOFLUSH              0x80000000    /* no output flush on signal */
00077 
00078 
00079 /* SYS V REL. 4 PTY IOCTLs    */
00080 #define UNLKPT          _IO('t',70)             /* unlock slave pty */
00081 #define ISPTM           _IO('t',71)             /* ret. maj+min of pty master */
00082 #define ISPTS           _IO('t',73)             /* return maj+min of slave */
00083 #define GRTPT           _IO('t',74)             /* grantpt slave pty*/
00084 #define RLOGIND         _IO('t',75)             /* for rlogind protocol in ptydd */
00085 #define TELNETDP        _IO('t',76)             /* for telnetd protocol in ptydd */
00086 
00087 #define       TIOCCONS      _IOW('t', 98, int)   /* become virtual console */
00088 #define       TIOCGSID      _IOR('t', 72, int)   /* get the tty session id */
00089 
00090                                           /* locals, from 127 down */
00091 #define       TIOCLBIS      _IOW('t', 127, int)  /* bis local mode bits */
00092 #define       TIOCLBIC      _IOW('t', 126, int)  /* bic local mode bits */
00093 #define       TIOCLSET      _IOW('t', 125, int)  /* set entire mode word */
00094 #define       TIOCLGET      _IOR('t', 124, int)  /* get local modes */
00095 #define              LCRTBS        (CRTBS>>16)
00096 #define              LPRTERA              (PRTERA>>16)
00097 #define              LCRTERA              (CRTERA>>16)
00098 #define              LTILDE        (TILDE>>16)
00099 #define              LMDMBUF              (MDMBUF>>16)
00100 #define              LLITOUT              (LITOUT>>16)
00101 #define              LTOSTOP              (TOSTOP>>16)
00102 #define              LFLUSHO              (FLUSHO>>16)
00103 #define              LNOHANG              (NOHANG>>16)
00104 #define              LCRTKIL              (CRTKIL>>16)
00105 #define              LPASS8        (PASS8>>16)
00106 #define              LCTLECH              (CTLECH>>16)
00107 #define              LPENDIN              (PENDIN>>16)
00108 #define              LDECCTQ              (DECCTQ>>16)
00109 #define              LNOFLSH              (NOFLUSH>>16)
00110 #define       TIOCSBRK      _IO('t', 123)        /* set break bit */
00111 #define       TIOCCBRK      _IO('t', 122)        /* clear break bit */
00112 #define       TIOCSDTR      _IO('t', 121)        /* set data terminal ready */
00113 #define       TIOCCDTR      _IO('t', 120)        /* clear data terminal ready */
00114 #define       TIOCGPGRP     _IOR('t', 119, int)  /* get process group */
00115 #define       TIOCSPGRP     _IOW('t', 118, int)   /* set process gorup */
00116 #define       TIOCSLTC      _IOW('t',117,struct ltchars)/* set local special chars */
00117 #define       TIOCGLTC      _IOR('t',116,struct ltchars)/* get local special chars */
00118 #define       TIOCOUTQ      _IOR('t', 115, int)  /* output queue size */
00119 #define       TIOCSTI              _IOW('t', 114, char) /* simulate terminal input */
00120 #define       TIOCNOTTY     _IO('t', 113)        /* void tty association */
00121 #define       TIOCPKT              _IOW('t', 112, int)  /* pty: set/clear packet mode */
00122 #define              TIOCPKT_DATA         0x00   /* data packet */
00123 #define              TIOCPKT_FLUSHREAD    0x01   /* flush packet */
00124 #define              TIOCPKT_FLUSHWRITE   0x02   /* flush packet */
00125 #define              TIOCPKT_STOP         0x04   /* stop output */
00126 #define              TIOCPKT_START        0x08   /* start output */
00127 #define              TIOCPKT_NOSTOP              0x10   /* no more ^S, ^Q */
00128 #define              TIOCPKT_DOSTOP              0x20   /* now do ^S ^Q */
00129 #define       TIOCSTOP      _IO('t', 111)        /* stop output, like ^S */
00130 #define       TIOCSTART     _IO('t', 110)        /* start output, like ^Q */
00131 #define       TIOCMSET      _IOW('t', 109, int)  /* set all modem bits */
00132 #define       TIOCMBIS      _IOW('t', 108, int)  /* bis modem bits */
00133 #define       TIOCMBIC      _IOW('t', 107, int)  /* bic modem bits */
00134 #define       TIOCMGET      _IOR('t', 106, int)  /* get all modem bits */
00135 #define       TIOCREMOTE    _IOW('t', 105, int)  /* remote input editing */
00136 #define       TIOCGWINSZ    _IOR('t', 104, struct winsize)     /* get window size */
00137 #define       TIOCSWINSZ    _IOW('t', 103, struct winsize)     /* set window size */
00138 #define       TIOCUCNTL     _IOW('t', 102, int)  /* pty: set/clr usr cntl mode */
00139 /* SLIP (Serial Line IP) ioctl's */
00140 #define       SLIOCGUNIT    _IOR('t', 101, int)  /* get slip unit number */
00141 #define SLIOCSFLAGS     _IOW('t', 89, int)      /* set configuration flags */
00142 #define SLIOCGFLAGS     _IOR('t', 90, int)      /* get configuration flags */
00143 #define SLIOCSATTACH    _IOWR('t', 91, int)      /* Attach slip i.f. to tty  */
00144 #define              UIOCCMD(n)    _IO('u', n)          /* usr cntl op "n" */
00145 
00146 #define       OTTYDISC      0             /* old, v7 std tty driver */
00147 #define       NETLDISC      1             /* line discip for berk net */
00148 #define       NTTYDISC      2             /* new tty discipline */
00149 #define       TABLDISC      3             /* tablet discipline */
00150 #define       SLIPDISC      4             /* serial IP discipline */
00151 
00152 #define       FIOCLEX              _IO('f', 1)          /* set close on exec    */
00153 #define       FIONCLEX      _IO('f', 2)          /* clear close on exec  */
00154 /* another local */
00155 
00156 #define       FIONREAD      _IOR('f', 127, int)  /* get # bytes to read */
00157 #define       FIONBIO              _IOW('f', 126, int)  /* set/clear non-blocking i/o */
00158 #define       FIOASYNC      _IOW('f', 125, int)  /* set/clear async i/o */
00159 
00160 #define       FIOSETOWN     _IOW('f', 124, int)  /* set owner */
00161 #define       FIOGETOWN     _IOR('f', 123, int)  /* get owner */
00162 #define       FIOASYNCQX    _IOW('f', 122, int)  /* set/clear async queueing */
00163 
00164 /* socket i/o controls */
00165 #define       SIOCSHIWAT    _IOW('s',  0, int)          /* set high watermark */
00166 #define       SIOCGHIWAT    _IOR('s',  1, int)          /* get high watermark */
00167 #define       SIOCSLOWAT    _IOW('s',  2, int)          /* set low watermark */
00168 #define       SIOCGLOWAT    _IOR('s',  3, int)          /* get low watermark */
00169 #define       SIOCATMARK    _IOR('s',  7, int)          /* at oob mark? */
00170 #define       SIOCSPGRP     _IOW('s',  8, int)          /* set process group */
00171 #define       SIOCGPGRP     _IOR('s',  9, int)          /* get process group */
00172 
00173 #define       SIOCADDRT     (int)_IOW('r', 10, struct ortentry)       /* add route */
00174 #define       SIOCDELRT     (int)_IOW('r', 11, struct ortentry)       /* delete route */
00175 
00176 #define       SIOCSIFADDR   (int)_IOW('i', 12, struct oifreq)  /* set ifnet address */
00177 #define       OSIOCGIFADDR  (int)_IOWR('i',13, struct oifreq)  /* get ifnet address */
00178 #define       SIOCGIFADDR   (int)_IOWR('i',33, struct oifreq)  /* get ifnet address */
00179 #define       SIOCSIFDSTADDR       (int)_IOW('i', 14, struct oifreq)  /* set p-p address */
00180 #define       OSIOCGIFDSTADDR      (int)_IOWR('i',15, struct oifreq)  /* get p-p address */
00181 #define       SIOCGIFDSTADDR       (int)_IOWR('i',34, struct oifreq)  /* get p-p address */
00182 #define       SIOCSIFFLAGS  (int)_IOW('i', 16, struct oifreq)  /* set ifnet flags */
00183 #define       SIOCGIFFLAGS  (int)_IOWR('i',17, struct oifreq)  /* get ifnet flags */
00184 #define       OSIOCGIFBRDADDR      (int)_IOWR('i',18, struct oifreq)  /* get broadcast addr */
00185 #define       SIOCGIFBRDADDR       (int)_IOWR('i',35, struct oifreq)  /* get broadcast addr */
00186 #define       SIOCSIFBRDADDR       (int)_IOW('i',19, struct oifreq)   /* set broadcast addr */
00187 #define       OSIOCGIFCONF  (int)_IOWR('i',20, struct ifconf)  /* get ifnet list */
00188 #define       CSIOCGIFCONF  (int)_IOWR('i',36, struct ifconf)  /* get ifnet list */
00189 #define       SIOCGIFCONF   (int)_IOWR('i',69, struct ifconf)  /* get ifnet list */
00190 #define       OSIOCGIFNETMASK      (int)_IOWR('i',21, struct oifreq)  /* get net addr mask */
00191 #define       SIOCGIFNETMASK       (int)_IOWR('i',37, struct oifreq)  /* get net addr mask */
00192 #define       SIOCSIFNETMASK       (int)_IOW('i',22, struct oifreq)   /* set net addr mask */
00193 #define       SIOCGIFMETRIC (int)_IOWR('i',23, struct oifreq)  /* get IF metric */
00194 #define       SIOCSIFMETRIC (int)_IOW('i',24, struct oifreq)   /* set IF metric */
00195 #define       SIOCDIFADDR   (int)_IOW('i',25, struct oifreq)   /* delete IF addr */
00196 #define       SIOCAIFADDR   (int)_IOW('i',26, struct ifaliasreq)      /* add/chg IF alias */
00197 #define       SIOCSIFSUBCHAN       (int)_IOW('i',27, struct oifreq)   /* set subchannel adr.*/
00198 #define SIOCSIFNETDUMP  (int)_IOW('i',28, struct oifreq)        /* set netdump fastwrt*/
00199 
00200 #define       SIOCSARP      (int)_IOW('i', 30, struct arpreq)  /* set arp entry */
00201 #define       OSIOCGARP     (int)_IOWR('i',31, struct arpreq)  /* get arp entry */
00202 #define       SIOCGARP      (int)_IOWR('i',38, struct arpreq)  /* get arp entry */
00203 #define       SIOCDARP      (int)_IOW('i', 32, struct arpreq)  /* delete arp entry */
00204 
00205 #define       SIOCSIFOPTIONS       (int)_IOW('i', 41, struct oifreq)  /* set ifnet options */
00206 #define       SIOCGIFOPTIONS       (int)_IOWR('i',42, struct oifreq)  /* get ifnet options */
00207 #define       SIOCADDMULTI  (int)_IOW('i', 49, struct ifreq)   /* add multicast addr */
00208 #define       SIOCDELMULTI  (int)_IOW('i', 50, struct ifreq)   /* del multicast addr */
00209 #define       SIOCGETVIFCNT (int)_IOWR('u', 51, struct sioc_vif_req)/* vif pkt cnt */
00210 #define       SIOCGETSGCNT  (int)_IOWR('u', 52, struct sioc_sg_req) /* s,g pkt cnt */
00211 
00212 #define       SIOCADDNETID  (int)_IOW('i',87, struct oifreq)   /* set netids */
00213 #define       SIOCSIFMTU    (int)_IOW('i',88, struct oifreq)   /* set mtu */
00214 #define       SIOCGIFMTU    (int)_IOWR('i',86, struct oifreq)  /* get mtu */
00215 
00216 #define SIOCSNETOPT     (int)_IOW('i', 90, struct optreq) /* set network option */
00217 #define SIOCGNETOPT     (int)_IOWR('i', 91, struct optreq) /* get network option */
00218 #define SIOCDNETOPT     (int)_IOWR('i', 92, struct optreq) /* set default */
00219 
00220 #define       SIOCSX25XLATE (int)_IOW('i', 99, struct oifreq)  /* set xlate tab */
00221 #define       SIOCGX25XLATE (int)_IOWR('i',100, struct oifreq) /* get xlate tab */
00222 #define       SIOCDX25XLATE (int)_IOW('i', 101, struct oifreq) /* delete xlate tab */
00223 
00224 #define SIOCIFDETACH (int)_IOW('i', 102, struct ifreq)  /* detach an ifnet */
00225 #define SIOCIFATTACH (int)_IOW('i', 103, struct ifreq)  /* attach an ifnet */
00226 
00227 #define       SIOCGNMTUS    (int)_IO('i',110) /* get NMTUs */
00228 #define       SIOCGETMTUS   (int)_IO('i',111) /* get common_mtus */
00229 #define       SIOCADDMTU    (int)_IOW('i',112, int) /* add mtu  */
00230 #define       SIOCDELMTU    (int)_IOW('i',113, int) /* delete mtu */
00231 
00232 #define SIOCGIFGIDLIST  (int)_IO('i', 104)                   /* get gidlist */
00233 #define SIOCSIFGIDLIST  (int)_IO('i', 105)                   /* set gidlist */
00234 
00235 #define SIOCGSIZIFCONF  (int)_IOR('i', 106, int) /* get size for SIOCGIFCONF */
00236 
00237 #define SIOCIF_ATM_UBR             (int)_IOW('i',120,struct ifreq)  /* set ubr rate */
00238 #define SIOCIF_ATM_SNMPARP      (int)_IOW('i',121,struct ifreq)  /* atm snmp arp */
00239 #define SIOCIF_ATM_IDLE         (int)_IOW('i',122,struct ifreq)  /* set idle time */
00240 #define SIOCIF_ATM_DUMPARP      (int)_IOW('i',123,struct ifreq)  /* atm dump arp */
00241 #define SIOCIF_ATM_SVC             (int)_IOW('i',124,struct ifreq)  /* atmif init */
00242 #define SIOCIF_ATM_DARP            (int)_IOW('i',125,struct ifreq)  /* del atmarp */
00243 #define SIOCIF_ATM_GARP            (int)_IOW('i',126,struct ifreq)  /* get atmarp */
00244 #define SIOCIF_ATM_SARP            (int)_IOW('i',127,struct ifreq)  /* set atmarp */
00245 
00246 #define       SIOCGISNO     (int)_IOWR('i',107, struct oifreq) /* get IF network options */
00247 #define       SIOCSISNO     (int)_IOW('i', 108, struct oifreq) /* set IF network options */
00248 #define SIOCGIFBAUDRATE (int)_IOWR('i', 109, struct oifreq)     /* get ifnet's if_baudrate */