1 /* $OpenBSD: sockio.h,v 1.24 2003/12/08 09:09:03 markus Exp $ */ 2 /* $OpenBSD: sockio.h,v 1.34 2005/05/26 22:37:35 henning Exp $ */ 3 /* $NetBSD: sockio.h,v 1.5 1995/08/23 00:40:47 thorpej Exp $ */ 4 5 /*- 6 * Copyright (c) 1982, 1986, 1990, 1993, 1994 7 * The Regents of the University of California. All rights reserved. 8 * 9 * Redistribution and use in source and binary forms, with or without 10 * modification, are permitted provided that the following conditions 11 * are met: 12 * 1. Redistributions of source code must retain the above copyright 13 * notice, this list of conditions and the following disclaimer. 14 * 2. Redistributions in binary form must reproduce the above copyright 15 * notice, this list of conditions and the following disclaimer in the 16 * documentation and/or other materials provided with the distribution. 17 * 3. Neither the name of the University nor the names of its contributors 18 * may be used to endorse or promote products derived from this software 19 * without specific prior written permission. 20 * 21 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 22 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 23 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 24 * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 25 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 26 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 27 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 28 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 29 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 30 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 31 * SUCH DAMAGE. 32 * 33 * @(#)sockio.h 8.1 (Berkeley) 3/28/94 34 */ 35 36 #ifndef _SYS_SOCKIO_H_ 37 #define _SYS_SOCKIO_H_ 38 39 #include <sys/ioccom.h> 40 41 /* Socket ioctl's. */ 42 #define SIOCSHIWAT _IOW('s', 0, int) /* set high watermark */ 43 #define SIOCGHIWAT _IOR('s', 1, int) /* get high watermark */ 44 #define SIOCSLOWAT _IOW('s', 2, int) /* set low watermark */ 45 #define SIOCGLOWAT _IOR('s', 3, int) /* get low watermark */ 46 #define SIOCATMARK _IOR('s', 7, int) /* at oob mark? */ 47 #define SIOCSPGRP _IOW('s', 8, int) /* set process group */ 48 #define SIOCGPGRP _IOR('s', 9, int) /* get process group */ 49 50 #define SIOCSIFADDR _IOW('i', 12, struct ifreq) /* set ifnet address */ 51 #define OSIOCGIFADDR _IOWR('i', 13, struct ifreq) /* get ifnet address */ 52 #define SIOCGIFADDR _IOWR('i', 33, struct ifreq) /* get ifnet address */ 53 #define SIOCSIFDSTADDR _IOW('i', 14, struct ifreq) /* set p-p address */ 54 #define OSIOCGIFDSTADDR _IOWR('i', 15, struct ifreq) /* get p-p address */ 55 #define SIOCGIFDSTADDR _IOWR('i', 34, struct ifreq) /* get p-p address */ 56 #define SIOCSIFFLAGS _IOW('i', 16, struct ifreq) /* set ifnet flags */ 57 #define SIOCGIFFLAGS _IOWR('i', 17, struct ifreq) /* get ifnet flags */ 58 #define OSIOCGIFBRDADDR _IOWR('i', 18, struct ifreq) /* get broadcast addr */ 59 #define SIOCGIFBRDADDR _IOWR('i', 35, struct ifreq) /* get broadcast addr */ 60 #define SIOCSIFBRDADDR _IOW('i', 19, struct ifreq) /* set broadcast addr */ 61 #define OSIOCGIFCONF _IOWR('i', 20, struct ifconf) /* get ifnet list */ 62 #define SIOCGIFCONF _IOWR('i', 36, struct ifconf) /* get ifnet list */ 63 #define OSIOCGIFNETMASK _IOWR('i', 21, struct ifreq) /* get net addr mask */ 64 #define SIOCGIFNETMASK _IOWR('i', 37, struct ifreq) /* get net addr mask */ 65 #define SIOCSIFNETMASK _IOW('i', 22, struct ifreq) /* set net addr mask */ 66 #define SIOCGIFMETRIC _IOWR('i', 23, struct ifreq) /* get IF metric */ 67 #define SIOCSIFMETRIC _IOW('i', 24, struct ifreq) /* set IF metric */ 68 #define SIOCDIFADDR _IOW('i', 25, struct ifreq) /* delete IF addr */ 69 #define SIOCAIFADDR _IOW('i', 26, struct ifaliasreq)/* add/chg IF alias */ 70 #define SIOCGIFDATA _IOWR('i', 27, struct ifreq) /* get if_data */ 71 72 /* KAME IPv6 */ 73 /* SIOCAIFALIAS? */ 74 #define SIOCALIFADDR _IOW('i', 28, struct if_laddrreq) /* add IF addr */ 75 #define SIOCGLIFADDR _IOWR('i', 29, struct if_laddrreq) /* get IF addr */ 76 #define SIOCDLIFADDR _IOW('i', 30, struct if_laddrreq) /* delete IF addr */ 77 78 #define SIOCADDMULTI _IOW('i', 49, struct ifreq) /* add m'cast addr */ 79 #define SIOCDELMULTI _IOW('i', 50, struct ifreq) /* del m'cast addr */ 80 #define SIOCGETVIFCNT _IOWR('u', 51, struct sioc_vif_req)/* vif pkt cnt */ 81 #define SIOCGETSGCNT _IOWR('u', 52, struct sioc_sg_req) /* sg pkt cnt */ 82 83 #define SIOCSIFMEDIA _IOWR('i', 53, struct ifreq) /* set net media */ 84 #define SIOCGIFMEDIA _IOWR('i', 54, struct ifmediareq) /* get net media */ 85 86 #define SIOCSIFGENERIC _IOW('i', 57, struct ifreq) /* generic IF set op */ 87 #define SIOCGIFGENERIC _IOWR('i', 58, struct ifreq) /* generic IF get op */ 88 89 #define SIOCSIFPHYADDR _IOW('i', 70, struct ifaliasreq) /* set gif addres */ 90 #define SIOCGIFPSRCADDR _IOWR('i', 71, struct ifreq) /* get gif psrc addr */ 91 #define SIOCGIFPDSTADDR _IOWR('i', 72, struct ifreq) /* get gif pdst addr */ 92 #define SIOCDIFPHYADDR _IOW('i', 73, struct ifreq) /* delete gif addrs */ 93 #define SIOCSLIFPHYADDR _IOW('i', 74, struct if_laddrreq) /* set gif addrs */ 94 #define SIOCGLIFPHYADDR _IOWR('i', 75, struct if_laddrreq) /* get gif addrs */ 95 96 #define SIOCBRDGADD _IOW('i', 60, struct ifbreq) /* add bridge ifs */ 97 #define SIOCBRDGGSIFS _IOWR('i', 60, struct ifbreq) /* get span ifs */ 98 #define SIOCBRDGDEL _IOW('i', 61, struct ifbreq) /* del bridge ifs */ 99 #define SIOCBRDGGIFFLGS _IOWR('i', 62, struct ifbreq) /* get brdg if flags */ 100 #define SIOCBRDGSIFFLGS _IOW('i', 63, struct ifbreq) /* set brdg if flags */ 101 #define SIOCBRDGSCACHE _IOW('i', 64, struct ifbrparam)/* set cache size */ 102 #define SIOCBRDGGCACHE _IOWR('i', 65, struct ifbrparam)/* get cache size */ 103 #define SIOCBRDGADDS _IOW('i', 65, struct ifbreq) /* add span port */ 104 #define SIOCBRDGIFS _IOWR('i', 66, struct ifbreq) /* get member ifs */ 105 #define SIOCBRDGDELS _IOW('i', 66, struct ifbreq) /* del span port */ 106 #define SIOCBRDGRTS _IOWR('i', 67, struct ifbaconf) /* get addresses */ 107 #define SIOCBRDGSADDR _IOWR('i', 68, struct ifbareq) /* set addr flags */ 108 #define SIOCBRDGSTO _IOW('i', 69, struct ifbrparam)/* cache timeout */ 109 #define SIOCBRDGGTO _IOWR('i', 70, struct ifbrparam)/* cache timeout */ 110 #define SIOCBRDGDADDR _IOW('i', 71, struct ifbareq) /* delete addr */ 111 #define SIOCBRDGFLUSH _IOW('i', 72, struct ifbreq) /* flush addr cache */ 112 113 #define SIOCBRDGARL _IOW('i', 77, struct ifbrlreq) /* add bridge rule */ 114 #define SIOCBRDGFRL _IOW('i', 78, struct ifbrlreq) /* flush brdg rules */ 115 #define SIOCBRDGGRL _IOWR('i', 79, struct ifbrlconf)/* get bridge rules */ 116 #define SIOCBRDGGPRI _IOWR('i', 80, struct ifbrparam)/* get priority */ 117 #define SIOCBRDGSPRI _IOW('i', 80, struct ifbrparam)/* set priority */ 118 #define SIOCBRDGGHT _IOWR('i', 81, struct ifbrparam)/* get hello time */ 119 #define SIOCBRDGSHT _IOW('i', 81, struct ifbrparam)/* set hello time */ 120 #define SIOCBRDGGFD _IOWR('i', 82, struct ifbrparam)/* get forward delay */ 121 #define SIOCBRDGSFD _IOW('i', 82, struct ifbrparam)/* set forward delay */ 122 #define SIOCBRDGGMA _IOWR('i', 83, struct ifbrparam)/* get max age */ 123 #define SIOCBRDGSMA _IOW('i', 83, struct ifbrparam)/* set max age */ 124 #define SIOCBRDGSIFPRIO _IOW('i', 84, struct ifbreq) /* set if priority */ 125 #define SIOCBRDGSIFCOST _IOW('i', 85, struct ifbreq) /* set if cost */ 126 127 #define SIOCBRDGS 128 #define GRESADDRS _IOW('i', 101, struct ifreq) 129 #define GRESADDRD _IOW('i', 102, struct ifreq) 130 #define GREGADDRS _IOWR('i', 103, struct ifreq) 131 #define GREGADDRD _IOWR('i', 104, struct ifreq) 132 #define GRESPROTO _IOW('i', 105, struct ifreq) 133 #define GREGPROTO _IOWR('i', 106, struct ifreq) 134 135 #define SIOCSIFMTU _IOW('i', 127, struct ifreq) /* set ifnet mtu */ 136 #define SIOCGIFMTU _IOWR('i', 126, struct ifreq) /* get ifnet mtu */ 137 #define SIOCSIFASYNCMAP _IOW('i', 125, struct ifreq) /* set ppp asyncmap */ 138 #define SIOCGIFASYNCMAP _IOWR('i', 124, struct ifreq) /* get ppp asyncmap */ 139 140 #define SIOCIFCREATE _IOW('i', 122, struct ifreq) /* create clone if */ 141 #define SIOCIFDESTROY _IOW('i', 121, struct ifreq) /* destroy clone if */ 142 #define SIOCIFGCLONERS _IOWR('i', 120, struct if_clonereq) /* get cloners */ 143 144 #endif /* !_SYS_SOCKIO_H_ */ 145