[BACK]Return to linux_socket.h CVS log [TXT][DIR] Up to [local] / sys / compat / linux

Annotation of sys/compat/linux/linux_socket.h, Revision 1.1.1.1

1.1       nbrk        1: /*     $OpenBSD: linux_socket.h,v 1.7 2002/11/27 07:30:36 ish Exp $    */
                      2: /*     $NetBSD: linux_socket.h,v 1.3 1995/05/28 10:16:34 mycroft Exp $ */
                      3:
                      4: /*
                      5:  * Copyright (c) 1995 Frank van der Linden
                      6:  * All rights reserved.
                      7:  *
                      8:  * Redistribution and use in source and binary forms, with or without
                      9:  * modification, are permitted provided that the following conditions
                     10:  * are met:
                     11:  * 1. Redistributions of source code must retain the above copyright
                     12:  *    notice, this list of conditions and the following disclaimer.
                     13:  * 2. Redistributions in binary form must reproduce the above copyright
                     14:  *    notice, this list of conditions and the following disclaimer in the
                     15:  *    documentation and/or other materials provided with the distribution.
                     16:  * 3. All advertising materials mentioning features or use of this software
                     17:  *    must display the following acknowledgement:
                     18:  *      This product includes software developed for the NetBSD Project
                     19:  *      by Frank van der Linden
                     20:  * 4. The name of the author may not be used to endorse or promote products
                     21:  *    derived from this software without specific prior written permission
                     22:  *
                     23:  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
                     24:  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
                     25:  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
                     26:  * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
                     27:  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
                     28:  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
                     29:  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
                     30:  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
                     31:  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
                     32:  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
                     33:  */
                     34:
                     35: #ifndef _LINUX_SOCKET_H
                     36: #define _LINUX_SOCKET_H
                     37:
                     38: /*
                     39:  * Various Linux socket defines. Everything that is not re-defined here
                     40:  * is the same as in OpenBSD.
                     41:  *
                     42:  * COMPAT_43 is assumed, and the osockaddr struct is used (it is what
                     43:  * Linux uses)
                     44:  */
                     45:
                     46: /*
                     47:  * Address families. There are fewer of them, and they're numbered
                     48:  * a bit different
                     49:  */
                     50:
                     51: #define LINUX_AF_UNSPEC                0
                     52: #define LINUX_AF_UNIX          1
                     53: #define LINUX_AF_INET          2
                     54: #define LINUX_AF_AX25          3
                     55: #define LINUX_AF_IPX           4
                     56: #define LINUX_AF_APPLETALK     5
                     57: #define LINUX_AF_INET6         10
                     58: #define LINUX_AF_MAX           32
                     59:
                     60: /*
                     61:  * Option levels for [gs]etsockopt(2). Only SOL_SOCKET is different,
                     62:  * the rest matches IPPROTO_XXX
                     63:  */
                     64:
                     65: #define LINUX_SOL_SOCKET       1
                     66: #define LINUX_SOL_IP           0
                     67: #define LINUX_SOL_IPX          256
                     68: #define LINUX_SOL_AX25         257
                     69: #define LINUX_SOL_TCP          6
                     70: #define LINUX_SOL_UDP          17
                     71:
                     72: /*
                     73:  * Options for [gs]etsockopt(2), socket level. For Linux, they
                     74:  * are not masks, but just increasing numbers.
                     75:  */
                     76:
                     77: #define LINUX_SO_DEBUG         1
                     78: #define LINUX_SO_REUSEADDR     2
                     79: #define LINUX_SO_TYPE          3
                     80: #define LINUX_SO_ERROR         4
                     81: #define LINUX_SO_DONTROUTE     5
                     82: #define LINUX_SO_BROADCAST     6
                     83: #define LINUX_SO_SNDBUF                7
                     84: #define LINUX_SO_RCVBUF                8
                     85: #define LINUX_SO_KEEPALIVE     9
                     86: #define LINUX_SO_OOBINLINE     10
                     87: #define LINUX_SO_NO_CHECK      11
                     88: #define LINUX_SO_PRIORITY      12
                     89: #define LINUX_SO_LINGER                13
                     90:
                     91: /*
                     92:  * Options vor [gs]etsockopt(2), IP level.
                     93:  */
                     94:
                     95: #define        LINUX_IP_TOS            1
                     96: #define        LINUX_IP_TTL            2
                     97: #define        LINUX_IP_HDRINCL        3
                     98: #define        LINUX_IP_MULTICAST_IF   32
                     99: #define        LINUX_IP_MULTICAST_TTL  33
                    100: #define        LINUX_IP_MULTICAST_LOOP 34
                    101: #define        LINUX_IP_ADD_MEMBERSHIP 35
                    102: #define        LINUX_IP_DROP_MEMBERSHIP 36
                    103:
                    104: /*
                    105:  * Options vor [gs]etsockopt(2), TCP level.
                    106:  */
                    107:
                    108: #define        LINUX_TCP_NODELAY       1
                    109: #define        LINUX_TCP_MAXSEG        2
                    110:
                    111: struct linux_sockaddr {
                    112:        unsigned short  sa_family;
                    113:        char            sa_data[14];
                    114: };
                    115:
                    116: struct linux_ifmap {
                    117:        unsigned long   mem_start;
                    118:        unsigned long   mem_end;
                    119:        unsigned short  base_addr;
                    120:        unsigned char   irq;
                    121:        unsigned char   dma;
                    122:        unsigned char   port;
                    123: };
                    124:
                    125: struct linux_ifreq {
                    126: #define LINUX_IFHWADDRLEN     6
                    127: #define LINUX_IFNAMSIZ        16
                    128:        union {
                    129:                char ifrn_name[LINUX_IFNAMSIZ];         /* if name, e.g. "en0" */
                    130:        } ifr_ifrn;
                    131:
                    132:        union {
                    133:                struct linux_sockaddr   ifru_addr;
                    134:                struct linux_sockaddr   ifru_dstaddr;
                    135:                struct linux_sockaddr   ifru_broadaddr;
                    136:                struct linux_sockaddr   ifru_netmask;
                    137:                struct linux_sockaddr   ifru_hwaddr;
                    138:                short                   ifru_flags;
                    139:                int                     ifru_metric;
                    140:                int                     ifru_mtu;
                    141:                struct linux_ifmap      ifru_map;
                    142:                char                    ifru_slave[LINUX_IFNAMSIZ];
                    143:                caddr_t                 ifru_data;
                    144:        } ifr_ifru;
                    145: };
                    146:
                    147: #define ifr_name       ifr_ifrn.ifrn_name              /* interface name */
                    148: #define ifr_hwaddr     ifr_ifru.ifru_hwaddr            /* MAC address */
                    149:
                    150: #endif /* _LINUX_SOCKET_H */

CVSweb