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/linux/common/linux_socketcall.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: linux_socketcall.h,v 1.8 2005/02/26 23:10:19 perry Exp $       */
    2 
    3 /*-
    4  * Copyright (c) 1995, 1998 The NetBSD Foundation, Inc.
    5  * All rights reserved.
    6  *
    7  * This code is derived from software contributed to The NetBSD Foundation
    8  * by Frank van der Linden and Eric Haszlakiewicz.
    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  * 3. All advertising materials mentioning features or use of this software
   19  *    must display the following acknowledgement:
   20  *      This product includes software developed by the NetBSD
   21  *      Foundation, Inc. and its contributors.
   22  * 4. Neither the name of The NetBSD Foundation nor the names of its
   23  *    contributors may be used to endorse or promote products derived
   24  *    from this software without specific prior written permission.
   25  *
   26  * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
   27  * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
   28  * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
   29  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
   30  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
   31  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
   32  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
   33  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
   34  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
   35  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
   36  * POSSIBILITY OF SUCH DAMAGE.
   37  */
   38 
   39 /*
   40  * Copyright (c) 1995 Frank van der Linden
   41  * All rights reserved.
   42  *
   43  * Redistribution and use in source and binary forms, with or without
   44  * modification, are permitted provided that the following conditions
   45  * are met:
   46  * 1. Redistributions of source code must retain the above copyright
   47  *    notice, this list of conditions and the following disclaimer.
   48  * 2. Redistributions in binary form must reproduce the above copyright
   49  *    notice, this list of conditions and the following disclaimer in the
   50  *    documentation and/or other materials provided with the distribution.
   51  * 3. All advertising materials mentioning features or use of this software
   52  *    must display the following acknowledgement:
   53  *      This product includes software developed for the NetBSD Project
   54  *      by Frank van der Linden
   55  * 4. The name of the author may not be used to endorse or promote products
   56  *    derived from this software without specific prior written permission
   57  *
   58  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
   59  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   60  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
   61  * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
   62  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
   63  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
   64  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
   65  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
   66  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
   67  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
   68  */
   69 
   70 #ifndef _LINUX_SOCKETCALL_H
   71 #define _LINUX_SOCKETCALL_H
   72 
   73 /* Alpha does not use the socketcall multiplexer */
   74 #if !defined(__alpha__)
   75 /* Used on: arm, i386, m68k, mips, ppc, sparc, sparc64 */
   76 /* Not used on: alpha */
   77 
   78 /*
   79  * Values passed to the Linux socketcall() syscall, determining the actual
   80  * action to take.
   81  */
   82 
   83 #define LINUX_SYS_socket        1
   84 #define LINUX_SYS_bind          2
   85 #define LINUX_SYS_connect       3
   86 #define LINUX_SYS_listen        4
   87 #define LINUX_SYS_accept        5
   88 #define LINUX_SYS_getsockname   6
   89 #define LINUX_SYS_getpeername   7
   90 #define LINUX_SYS_socketpair    8
   91 #define LINUX_SYS_send          9
   92 #define LINUX_SYS_recv          10
   93 #define LINUX_SYS_sendto        11
   94 #define LINUX_SYS_recvfrom      12
   95 #define LINUX_SYS_shutdown      13
   96 #define LINUX_SYS_setsockopt    14
   97 #define LINUX_SYS_getsockopt    15
   98 #define LINUX_SYS_sendmsg       16
   99 #define LINUX_SYS_recvmsg       17
  100 
  101 #define LINUX_MAX_SOCKETCALL    17
  102 
  103 
  104 /*
  105  * Structures for the arguments of the different system calls. This looks
  106  * a little better than copyin() of all values one by one.
  107  */
  108 
  109 /* !!!: This should be at least as large as any other struct here. */
  110 struct linux_socketcall_dummy_args {
  111         int dummy_ints[4];              /* Max 4 ints */
  112         void * dummy_ptrs[3];           /* Max 3 pointers */
  113 };
  114 
  115 struct linux_sys_socket_args {
  116         syscallarg(int) domain;
  117         syscallarg(int) type;
  118         syscallarg(int) protocol;
  119 };
  120 
  121 struct linux_sys_socketpair_args {
  122         syscallarg(int) domain;
  123         syscallarg(int) type;
  124         syscallarg(int) protocol;
  125         syscallarg(int *) rsv;
  126 };
  127 
  128 struct linux_sys_sendto_args {
  129         syscallarg(int) s;
  130         syscallarg(void *) msg;
  131         syscallarg(int) len;
  132         syscallarg(int) flags;
  133         syscallarg(struct osockaddr *) to;
  134         syscallarg(int) tolen;
  135 };
  136 
  137 struct linux_sys_recvfrom_args {
  138         syscallarg(int) s;
  139         syscallarg(void *) buf;
  140         syscallarg(int) len;
  141         syscallarg(int) flags;
  142         syscallarg(struct osockaddr *) from;
  143         syscallarg(int *) fromlenaddr;
  144 };
  145 
  146 struct linux_sys_setsockopt_args {
  147         syscallarg(int) s;
  148         syscallarg(int) level;
  149         syscallarg(int) optname;
  150         syscallarg(void *) optval;
  151         syscallarg(int) optlen;
  152 };
  153 
  154 struct linux_sys_getsockopt_args {
  155         syscallarg(int) s;
  156         syscallarg(int) level;
  157         syscallarg(int) optname;
  158         syscallarg(void *) optval;
  159         syscallarg(int *) optlen;
  160 };
  161 
  162 struct linux_sys_bind_args {
  163         syscallarg(int) s;
  164         syscallarg(struct osockaddr *) name;
  165         syscallarg(int) namelen;
  166 };
  167 
  168 struct linux_sys_connect_args {
  169         syscallarg(int) s;
  170         syscallarg(struct osockaddr *) name;
  171         syscallarg(int) namelen;
  172 };
  173 
  174 struct linux_sys_accept_args {
  175         syscallarg(int) s;
  176         syscallarg(struct osockaddr *) name;
  177         syscallarg(int *) anamelen;
  178 };
  179 
  180 struct linux_sys_getsockname_args {
  181         syscallarg(int) fdes;
  182         syscallarg(struct osockaddr *) asa;
  183         syscallarg(int *) alen;
  184 };
  185 
  186 struct linux_sys_getpeername_args {
  187         syscallarg(int) fdes;
  188         syscallarg(struct osockaddr *) asa;
  189         syscallarg(int *) alen;
  190 };
  191 
  192 struct linux_sys_sendmsg_args {
  193         syscallarg(int) s;
  194         syscallarg(struct msghdr *) msg;
  195         syscallarg(u_int) flags;
  196 };
  197 
  198 struct linux_sys_recvmsg_args {
  199         syscallarg(int) s;
  200         syscallarg(struct msghdr *) msg;
  201         syscallarg(u_int) flags;
  202 };
  203 
  204 struct linux_sys_send_args {
  205         syscallarg(int) s;
  206         syscallarg(void *) buf;
  207         syscallarg(int) len;
  208         syscallarg(int) flags;
  209 };
  210 
  211 struct linux_sys_recv_args {
  212         syscallarg(int) s;
  213         syscallarg(void *) buf;
  214         syscallarg(int) len;
  215         syscallarg(int) flags;
  216 };
  217 
  218 /* These are only used for their size: */
  219 
  220 struct linux_sys_listen_args {
  221         syscallarg(int) s;
  222         syscallarg(int) backlog;
  223 };
  224 
  225 struct linux_sys_shutdown_args {
  226         syscallarg(int) s;
  227         syscallarg(int) how;
  228 };
  229 
  230 # ifdef _KERNEL
  231 __BEGIN_DECLS
  232 int linux_sys_socket __P((struct lwp *, void *, register_t *));
  233 int linux_sys_socketpair __P((struct lwp *, void *, register_t *));
  234 int linux_sys_sendto __P((struct lwp *, void *, register_t *));
  235 int linux_sys_recvfrom __P((struct lwp *, void *, register_t *));
  236 int linux_sys_setsockopt __P((struct lwp *, void *, register_t *));
  237 int linux_sys_getsockopt __P((struct lwp *, void *, register_t *));
  238 int linux_sys_connect __P((struct lwp *, void *, register_t *));
  239 int linux_sys_bind __P((struct lwp *, void *, register_t *));
  240 int linux_sys_getsockname __P((struct lwp *, void *, register_t *));
  241 int linux_sys_getpeername __P((struct lwp *, void *, register_t *));
  242 int linux_sys_sendmsg __P((struct lwp *, void *, register_t *));
  243 int linux_sys_recvmsg __P((struct lwp *, void *, register_t *));
  244 int linux_sys_recv __P((struct lwp *, void *, register_t *));
  245 int linux_sys_send __P((struct lwp *, void *, register_t *));
  246 int linux_sys_accept __P((struct lwp *, void *, register_t *));
  247 __END_DECLS
  248 # endif /* !_KERNEL */
  249 
  250 # endif
  251 
  252 #endif /* !_LINUX_SOCKETCALL_H */

Cache object: 009505b76cd0c265f7dc7a03e1eccdaf


[ 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.