summaryrefslogtreecommitdiff
path: root/ecos/packages/net/tcpip/current/include/sys/sockio.h
blob: 211e501a4f238700ed37876d746284169e74ca95 (plain)
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
//==========================================================================
//
//      include/sys/sockio.h
//
//      
//
//==========================================================================
// ####BSDALTCOPYRIGHTBEGIN####                                             
// -------------------------------------------                              
// Portions of this software may have been derived from OpenBSD             
// or other sources, and if so are covered by the appropriate copyright     
// and license included herein.                                             
// -------------------------------------------                              
// ####BSDALTCOPYRIGHTEND####                                               
//==========================================================================
//#####DESCRIPTIONBEGIN####
//
// Author(s):    gthomas
// Contributors: gthomas
// Date:         2000-01-10
// Purpose:      
// Description:  
//              
//
//####DESCRIPTIONEND####
//
//==========================================================================


/*      $OpenBSD: sockio.h,v 1.10 1999/12/08 06:50:24 itojun Exp $      */
/*      $NetBSD: sockio.h,v 1.5 1995/08/23 00:40:47 thorpej Exp $       */

/*-
 * Copyright (c) 1982, 1986, 1990, 1993, 1994
 *      The Regents of the University of California.  All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 * 1. Redistributions of source code must retain the above copyright
 *    notice, this list of conditions and the following disclaimer.
 * 2. Redistributions in binary form must reproduce the above copyright
 *    notice, this list of conditions and the following disclaimer in the
 *    documentation and/or other materials provided with the distribution.
 * 3. All advertising materials mentioning features or use of this software
 *    must display the following acknowledgement:
 *      This product includes software developed by the University of
 *      California, Berkeley and its contributors.
 * 4. Neither the name of the University nor the names of its contributors
 *    may be used to endorse or promote products derived from this software
 *    without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 * SUCH DAMAGE.
 *
 *      @(#)sockio.h    8.1 (Berkeley) 3/28/94
 */

#ifndef _SYS_SOCKIO_H_
#define _SYS_SOCKIO_H_

#include <sys/ioccom.h>

/* Socket ioctl's. */
#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 */

#ifdef __ECOS
#define SIOCADDRT        _IOW('r', 10, struct ecos_rtentry)     /* add route */
#define SIOCDELRT        _IOW('r', 11, struct ecos_rtentry)     /* delete route */
#else
#define SIOCADDRT        _IOW('r', 10, struct ortentry) /* add route */
#define SIOCDELRT        _IOW('r', 11, struct ortentry) /* delete route */
#endif

#define SIOCSIFADDR      _IOW('i', 12, struct ifreq)    /* set ifnet address */
#define OSIOCGIFADDR    _IOWR('i', 13, struct ifreq)    /* get ifnet address */
#define SIOCGIFADDR     _IOWR('i', 33, struct ifreq)    /* get ifnet address */
#define SIOCGIFHWADDR   _IOWR('i', 15, struct ifreq)    /* get MAC address */
#ifdef __ECOS
#define SIOCSIFHWADDR    _IOW('i',101, struct ifreq)    /* set MAC address */
/* NB these two take a struct ifreq followed by the useful data */
#define SIOCGIFSTATSUD  _IOWR('i',102, struct ifreq)    /* get uptodate if stats */
#define SIOCGIFSTATS    _IOWR('i',103, struct ifreq)    /* get interface stats */
#endif
#define SIOCSIFDSTADDR   _IOW('i', 14, struct ifreq)    /* set p-p address */
#define OSIOCGIFDSTADDR _IOWR('i', 15, struct ifreq)    /* get p-p address */
#define SIOCGIFDSTADDR  _IOWR('i', 34, struct ifreq)    /* get p-p address */
#define SIOCSIFFLAGS     _IOW('i', 16, struct ifreq)    /* set ifnet flags */
#define SIOCGIFFLAGS    _IOWR('i', 17, struct ifreq)    /* get ifnet flags */
#define OSIOCGIFBRDADDR _IOWR('i', 18, struct ifreq)    /* get broadcast addr */
#define SIOCGIFBRDADDR  _IOWR('i', 35, struct ifreq)    /* get broadcast addr */
#define SIOCSIFBRDADDR   _IOW('i', 19, struct ifreq)    /* set broadcast addr */
#define OSIOCGIFCONF    _IOWR('i', 20, struct ifconf)   /* get ifnet list */
#define SIOCGIFCONF     _IOWR('i', 36, struct ifconf)   /* get ifnet list */
#define OSIOCGIFNETMASK _IOWR('i', 21, struct ifreq)    /* get net addr mask */
#define SIOCGIFNETMASK  _IOWR('i', 37, struct ifreq)    /* get net addr mask */
#define SIOCSIFNETMASK   _IOW('i', 22, struct ifreq)    /* set net addr mask */
#define SIOCGIFMETRIC   _IOWR('i', 23, struct ifreq)    /* get IF metric */
#define SIOCSIFMETRIC    _IOW('i', 24, struct ifreq)    /* set IF metric */
#define SIOCDIFADDR      _IOW('i', 25, struct ifreq)    /* delete IF addr */
#define SIOCAIFADDR      _IOW('i', 26, struct ifaliasreq)/* add/chg IF alias */
#define SIOCGIFDATA     _IOWR('i', 27, struct ifreq)    /* get if_data */

/* KAME IPv6 */
/* SIOCAIFALIAS? */
#define SIOCALIFADDR     _IOW('i', 28, struct if_laddrreq) /* add IF addr */
#define SIOCGLIFADDR    _IOWR('i', 29, struct if_laddrreq) /* get IF addr */
#define SIOCDLIFADDR     _IOW('i', 30, struct if_laddrreq) /* delete IF addr */

#define SIOCADDMULTI     _IOW('i', 49, struct ifreq)    /* add m'cast addr */
#define SIOCDELMULTI     _IOW('i', 50, struct ifreq)    /* del m'cast addr */
#define SIOCGETVIFCNT   _IOWR('u', 51, struct sioc_vif_req)/* vif pkt cnt */
#define SIOCGETSGCNT    _IOWR('u', 52, struct sioc_sg_req) /* sg pkt cnt */

#define SIOCSIFMEDIA    _IOWR('i', 53, struct ifreq)    /* set net media */
#define SIOCGIFMEDIA    _IOWR('i', 54, struct ifmediareq) /* get net media */

#define SIOCSIFPHYADDR   _IOW('i', 70, struct ifaliasreq) /* set gif addres */
#define SIOCGIFPSRCADDR _IOWR('i', 71, struct ifreq)    /* get gif psrc addr */
#define SIOCGIFPDSTADDR _IOWR('i', 72, struct ifreq)    /* get gif pdst addr */

#define SIOCBRDGADD     _IOWR('i', 60, struct ifbreq)   /* add bridge ifs */
#define SIOCBRDGDEL     _IOWR('i', 61, struct ifbreq)   /* del bridge ifs */
#define SIOCBRDGGIFFLGS _IOWR('i', 62, struct ifbreq)   /* get brdg if flags */
#define SIOCBRDGSIFFLGS _IOWR('i', 63, struct ifbreq)   /* set brdg if flags */
#define SIOCBRDGSCACHE  _IOWR('i', 64, struct ifbcachereq) /* set cache size */
#define SIOCBRDGGCACHE  _IOWR('i', 65, struct ifbcachereq) /* get cache size */
#define SIOCBRDGADDS     _IOW('i', 65, struct ifbreq)   /* add span port */
#define SIOCBRDGIFS     _IOWR('i', 66, struct ifbreq)   /* get member ifs */
#define SIOCBRDGDELS     _IOW('i', 66, struct ifbreq)   /* del span port */
#define SIOCBRDGRTS     _IOWR('i', 67, struct ifbaconf) /* get addresses */
#define SIOCBRDGSADDR   _IOWR('i', 68, struct ifbareq)  /* set addr flags */
#define SIOCBRDGSTO     _IOWR('i', 69, struct ifbcachetoreq) /* cache timeout */
#define SIOCBRDGGTO     _IOWR('i', 70, struct ifbcachetoreq) /* cache timeout */
#define SIOCBRDGDADDR   _IOWR('i', 71, struct ifbareq)  /* delete addr */
#define SIOCBRDGFLUSH   _IOWR('i', 72, struct ifbreq)   /* flush addr cache */

#define SIOCBRDGARL     _IOWR('i', 77, struct ifbrlreq) /* add bridge rule */
#define SIOCBRDGFRL     _IOWR('i', 78, struct ifbrlreq) /* flush brdg rules */
#define SIOCBRDGGRL     _IOWR('i', 79, struct ifbrlconf)/* get bridge rules */

#define SIOCBRDGGPRI    _IOWR('i', 80, struct ifbrparam) /* get priority */
#define SIOCBRDGSPRI     _IOW('i', 80, struct ifbrparam) /* set priority */
#define SIOCBRDGGHT     _IOWR('i', 81, struct ifbrparam) /* get hello time */
#define SIOCBRDGSHT      _IOW('i', 81, struct ifbrparam) /* set hello time */
#define SIOCBRDGGFD     _IOWR('i', 82, struct ifbrparam) /* get forward delay */
#define SIOCBRDGSFD      _IOW('i', 82, struct ifbrparam) /* set forward delay */
#define SIOCBRDGGMA     _IOWR('i', 83, struct ifbrparam) /* get max age */
#define SIOCBRDGSMA      _IOW('i', 83, struct ifbrparam) /* set max age */
#define SIOCBRDGSIFPRIO _IOWR('i', 84, struct ifbreq)   /* set if priority */
#define SIOCBRDGSIFCOST _IOWR('i', 85, struct ifbreq)   /* set if cost */

#define SIOCSIFMTU       _IOW('i', 127, struct ifreq)   /* set ifnet mtu */
#define SIOCGIFMTU      _IOWR('i', 126, struct ifreq)   /* get ifnet mtu */
#define SIOCSIFASYNCMAP  _IOW('i', 125, struct ifreq)   /* set ppp asyncmap */
#define SIOCGIFASYNCMAP _IOWR('i', 124, struct ifreq)   /* get ppp asyncmap */

#ifdef __ECOS
#define FIONBIO          _IOW('s', 80, int)             /* set non-blocking I/O */
#define FIOASYNC         _IOW('s', 81, int)             /* set async I/O */
#define FIONREAD         _IOR('s', 82, int)             /* get number of avail chars */
#endif

#endif /* !_SYS_SOCKIO_H_ */