The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/compat/svr4/svr4_sockio.h

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    1 /*      $NetBSD: svr4_sockio.h,v 1.9 2008/04/28 20:23:45 martin Exp $    */
    2 
    3 /*-
    4  * Copyright (c) 1995 The NetBSD Foundation, Inc.
    5  * All rights reserved.
    6  *
    7  * This code is derived from software contributed to The NetBSD Foundation
    8  * by Christos Zoulas.
    9  *
   10  * Redistribution and use in source and binary forms, with or without
   11  * modification, are permitted provided that the following conditions
   12  * are met:
   13  * 1. Redistributions of source code must retain the above copyright
   14  *    notice, this list of conditions and the following disclaimer.
   15  * 2. Redistributions in binary form must reproduce the above copyright
   16  *    notice, this list of conditions and the following disclaimer in the
   17  *    documentation and/or other materials provided with the distribution.
   18  *
   19  * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
   20  * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
   21  * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
   22  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
   23  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
   24  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
   25  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
   26  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
   27  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
   28  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
   29  * POSSIBILITY OF SUCH DAMAGE.
   30  */
   31 
   32 #ifndef _SVR4_SOCKIO_H_
   33 #define _SVR4_SOCKIO_H_
   34 
   35 
   36 #define SVR4_IFF_UP             0x00000001
   37 #define SVR4_IFF_BROADCAST      0x00000002
   38 #define SVR4_IFF_DEBUG          0x00000004
   39 #define SVR4_IFF_LOOPBACK       0x00000008
   40 #define SVR4_IFF_POINTOPOINT    0x00000010
   41 #define SVR4_IFF_NOTRAILERS     0x00000020
   42 #define SVR4_IFF_RUNNING        0x00000040
   43 #define SVR4_IFF_NOARP          0x00000080
   44 #define SVR4_IFF_PROMISC        0x00000100
   45 #define SVR4_IFF_ALLMULTI       0x00000200
   46 #define SVR4_IFF_INTELLIGENT    0x00000400
   47 #define SVR4_IFF_MULTICAST      0x00000800
   48 #define SVR4_IFF_MULTI_BCAST    0x00001000
   49 #define SVR4_IFF_UNNUMBERED     0x00002000
   50 #define SVR4_IFF_DHCPRUNNING    0x00004000
   51 #define SVR4_IFF_PRIVATE        0x00008000
   52 #define SVR4_IFF_NOXMIT         0x00010000
   53 #define SVR4_IFF_NOLOCAL        0x00020000
   54 #define SVR4_IFF_DEPRECATED     0x00040000
   55 #define SVR4_IFF_ADDRCONF       0x00080000
   56 #define SVR4_IFF_ROUTER         0x00100000
   57 #define SVR4_IFF_NONUD          0x00200000
   58 #define SVR4_IFF_ANYCAST        0x00400000
   59 #define SVR4_IFF_NORTEXCH       0x00800000
   60 #define SVR4_IFF_IPV4           0x01000000
   61 #define SVR4_IFF_IPV6           0x02000000
   62 #define SVR4_IFF_MIPRUNNING     0x04000000
   63 #define SVR4_IFF_NOFAILOVER     0x08000000
   64 #define SVR4_IFF_FAILED         0x10000000
   65 #define SVR4_IFF_STANDBY        0x20000000
   66 #define SVR4_IFF_INACTIVE       0x40000000
   67 #define SVR4_IFF_OFFLINE        0x80000000
   68 
   69 struct svr4_ifreq {
   70 #define SVR4_IFNAMSIZ   16
   71         char    svr4_ifr_name[SVR4_IFNAMSIZ];
   72         union {
   73                 struct  osockaddr       ifru_addr;
   74                 struct  osockaddr       ifru_dstaddr;
   75                 struct  osockaddr       ifru_broadaddr;
   76                 short                   ifru_flags;
   77                 int                     ifru_metric;
   78                 char                    ifru_data;
   79                 char                    ifru_enaddr[6];
   80                 int                     if_muxid[2];
   81 
   82         } ifr_ifru;
   83 
   84 #define svr4_ifr_addr                   ifr_ifru.ifru_addr
   85 #define svr4_ifr_dstaddr                ifr_ifru.ifru_dstaddr
   86 #define svr4_ifr_broadaddr              ifr_ifru.ifru_broadaddr
   87 #define svr4_ifr_flags                  ifr_ifru.ifru_flags
   88 #define svr4_ifr_metric                 ifr_ifru.ifru_metric
   89 #define svr4_ifr_data                   ifr_ifru.ifru_data
   90 #define svr4_ifr_enaddr                 ifr_ifru.ifru_enaddr
   91 #define svr4_ifr_muxid                  ifr_ifru.ifru_muxid
   92 
   93 };
   94 
   95 typedef struct lif_ifinfo_req {
   96         uint8_t                 lir_maxhops;
   97         uint32_t                lir_reachtime;
   98         uint32_t                lir_reachretrans;
   99         uint32_t                lir_maxmtu;
  100 } lif_ifinfo_req_t;
  101 
  102 #define SVR4_ND_MAX_HDW_LEN     64
  103 typedef struct svr4_lif_nd_req {
  104         struct sockaddr_storage lnr_addr;
  105         uint8_t                 lnr_state_create;
  106         uint8_t                 lnr_state_same_lla;
  107         uint8_t                 lnr_state_diff_lla;
  108         int                     lnr_hdw_len;
  109         int                     lnr_flags;
  110         int                     lnr_pad0;
  111         char                    lnr_hdw_addr[SVR4_ND_MAX_HDW_LEN];
  112 } lif_nd_req_t;
  113 
  114 struct svr4_lifreq {
  115 #define SVR4_LIFNAMSIZ  32
  116         char                    lifr_name[SVR4_LIFNAMSIZ];
  117         union {
  118                 int             lifru_addrlen;
  119                 u_int           lifru_ppa;
  120         } lifr_lifru1;
  121 #define lifr_addrlen            lifr_lifru1.lifru_addrlen
  122 #define lifr_ppa                lifr_lifru1.lifru_ppa
  123         u_int                   lifr_movetoindex;
  124         union {
  125                 struct sockaddr_storage lifru_addr;
  126                 struct sockaddr_storage lifru_dstaddr;
  127                 struct sockaddr_storage lifru_broadaddr;
  128                 struct sockaddr_storage lifru_token;
  129                 struct sockaddr_storage lifru_subnet;
  130                 int             lifru_index;
  131                 uint64_t        lifru_flags;
  132                 int             lifru_metric;
  133                 u_int           lifru_mtu;
  134                 char            lifru_data[1];
  135                 char            lifru_enaddr[6];
  136                 int             lif_muxid[2];
  137                 struct svr4_lif_nd_req  lifru_nd_req;
  138                 struct lif_ifinfo_req   lifru_ifinfo_req;
  139                 char            lifru_groupname[SVR4_LIFNAMSIZ];
  140                 u_int           lifru_delay;
  141         } lifr_lifru;
  142 };
  143 
  144 #define svr4_lifr_addr          lifr_lifru.lifru_addr
  145 #define svr4_lifr_dstaddr       lifr_lifru.lifru_dstaddr
  146 #define svr4_lifr_broadaddr     lifr_lifru.lifru_broadaddr
  147 #define svr4_lifr_token         lifr_lifru.lifru_token
  148 #define svr4_lifr_subnet        lifr_lifru.lifru_subnet
  149 #define svr4_lifr_index         lifr_lifru.lifru_index
  150 #define svr4_lifr_flags         lifr_lifru.lifru_flags
  151 #define svr4_lifr_metric        lifr_lifru.lifru_metric
  152 #define svr4_lifr_mtu           lifr_lifru.lifru_mtu
  153 #define svr4_lifr_data          lifr_lifru.lifru_data
  154 #define svr4_lifr_enaddr        lifr_lifru.lifru_enaddr
  155 #define svr4_lifr_index         lifr_lifru.lifru_index
  156 #define svr4_lifr_ip_muxid      lifr_lifru.lif_muxid[0]
  157 #define svr4_lifr_arp_muxid     lifr_lifru.lif_muxid[1]
  158 #define svr4_lifr_nd            lifr_lifru.lifru_nd_req
  159 #define svr4_lifr_ifinfo        lifr_lifru.lifru_ifinfo_req
  160 #define svr4_lifr_groupname     lifr_lifru.lifru_groupname
  161 #define svr4_lifr_delay         lifr_lifru.lifru_delay
  162 
  163 
  164 typedef u_short svr4_sa_family_t;
  165 
  166 struct svr4_lifnum {
  167         svr4_sa_family_t        lifn_family;
  168         int                     lifn_flags;
  169         int                     lifn_count;
  170 };
  171 
  172 struct svr4_ifconf {
  173         int     svr4_ifc_len;
  174         union {
  175                 void *                   ifcu_buf;
  176                 struct svr4_ifreq       *ifcu_req;
  177         } ifc_ifcu;
  178 
  179 #define svr4_ifc_buf    ifc_ifcu.ifcu_buf
  180 #define svr4_ifc_req    ifc_ifcu.ifcu_req
  181 };
  182 
  183 #define SVR4_SIOC       ('i' << 8)
  184 
  185 #define SVR4_SIOCGIFFLAGS       SVR4_IOWR('i', 17, struct svr4_ifreq)
  186 #define SVR4_SIOCGIFCONF        SVR4_IOWR('i', 20, struct svr4_ifconf)
  187 #define SVR4_SIOCGIFNUM         SVR4_IOR('i', 87, int)
  188 #define SVR4_SIOCGLIFFLAGS      SVR4_IOWR('i', 117, struct svr4_lifreq)
  189 #define SVR4_SIOCGLIFNUM        SVR4_IOWR('i', 130, struct svr4_lifnum)
  190 
  191 #ifdef _KERNEL
  192 int svr4_count_ifnum(struct ifnet *);
  193 #endif /* _KERNEL */
  194 
  195 #endif /* !_SVR4_SOCKIO_H_ */

Cache object: 0b0c3b0587c9ab22293d9d14aadb23c3


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.