Move compat/linux/linux_socketcall.h to multiarch. Defines for the socketcall multiplexer.

This commit is contained in:
erh 1998-10-01 03:34:50 +00:00
parent 81cc399a4d
commit 658c307a1a
4 changed files with 304 additions and 474 deletions

View File

@ -1,4 +1,40 @@
/* $NetBSD: linux_socketcall.h,v 1.1 1995/02/28 23:26:05 fvdl Exp $ */
/* $NetBSD: linux_socketcall.h,v 1.2 1998/10/01 03:34:50 erh Exp $ */
/*-
* Copyright (c) 1998 The NetBSD Foundation, Inc.
* All rights reserved.
*
* This code is derived from software contributed to The NetBSD Foundation
* by Eric Haszlakiewicz.
*
* 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 NetBSD
* Foundation, Inc. and its contributors.
* 4. Neither the name of The NetBSD Foundation 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 NETBSD FOUNDATION, INC. 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 FOUNDATION 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.
*/
/*
* Copyright (c) 1995 Frank van der Linden
@ -31,13 +67,17 @@
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#ifndef _LINUX_SOCKETCALL_H
#define _LINUX_SOCKETCALL_H
#ifndef _MULTIARCH_LINUX_SOCKETCALL_H
#define _MULTIARCH_LINUX_SOCKETCALL_H
/* Used on: arm, i386, m68k, mips, ppc, sparc, sparc64 */
/* Not used on: alpha */
/*
* Values passed to the Linux socketcall() syscall, determining the actual
* action to take.
*/
#define LINUX_SYS_socket 1
#define LINUX_SYS_bind 2
#define LINUX_SYS_connect 3
@ -53,110 +93,147 @@
#define LINUX_SYS_shutdown 13
#define LINUX_SYS_setsockopt 14
#define LINUX_SYS_getsockopt 15
#define LINUX_SYS_sendmsg 16
#define LINUX_SYS_recvmsg 17
#define LINUX_MAX_SOCKETCALL 17
/*
* Structures for the arguments of the different system calls. This looks
* a little better than copyin() of all values one by one.
*/
struct linux_socket_args {
int domain;
int type;
int protocol;
/* !!!: This should be at least as large as any other struct here. */
struct linux_socketcall_dummy_args {
int dummy_ints[4]; /* Max 4 ints */
void * dummy_ptrs[3]; /* Max 3 pointers */
};
struct linux_bind_args {
int s;
struct sockaddr *name;
int namelen;
struct linux_sys_socket_args {
syscallarg(int) domain;
syscallarg(int) type;
syscallarg(int) protocol;
};
struct linux_connect_args {
int s;
struct sockaddr *name;
int namelen;
struct linux_sys_socketpair_args {
syscallarg(int) domain;
syscallarg(int) type;
syscallarg(int) protocol;
syscallarg(int *) rsv;
};
struct linux_listen_args {
int s;
int backlog;
struct linux_sys_sendto_args {
syscallarg(int) s;
syscallarg(void *) msg;
syscallarg(int) len;
syscallarg(int) flags;
syscallarg(struct sockaddr *) to;
syscallarg(int) tolen;
};
struct linux_accept_args {
int s;
struct sockaddr *addr;
int *namelen;
struct linux_sys_recvfrom_args {
syscallarg(int) s;
syscallarg(void *) buf;
syscallarg(int) len;
syscallarg(int) flags;
syscallarg(struct sockaddr *) from;
syscallarg(int *) fromlen;
};
struct linux_getsockname_args {
int s;
struct sockaddr *addr;
int *namelen;
struct linux_sys_setsockopt_args {
syscallarg(int) s;
syscallarg(int) level;
syscallarg(int) optname;
syscallarg(void *) optval;
syscallarg(int) optlen;
};
struct linux_getpeername_args {
int s;
struct sockaddr *addr;
int *namelen;
struct linux_sys_getsockopt_args {
syscallarg(int) s;
syscallarg(int) level;
syscallarg(int) optname;
syscallarg(void *) optval;
syscallarg(int *) optlen;
};
struct linux_socketpair_args {
int domain;
int type;
int protocol;
int *rsv;
/* These are only used for their size: */
struct linux_sys_bind_args {
syscallarg(int) s;
syscallarg(struct sockaddr *) name;
syscallarg(int) namelen;
};
struct linux_send_args {
int s;
void *msg;
int len;
int flags;
struct linux_sys_connect_args {
syscallarg(int) s;
syscallarg(struct sockaddr *) name;
syscallarg(int) namelen;
};
struct linux_recv_args {
int s;
void *msg;
int len;
int flags;
struct linux_sys_listen_args {
syscallarg(int) s;
syscallarg(int) backlog;
};
struct linux_sendto_args {
int s;
void *msg;
int len;
int flags;
struct sockaddr *to;
int tolen;
struct linux_sys_accept_args {
syscallarg(int) s;
syscallarg(struct sockaddr *) addr;
syscallarg(int *) namelen;
};
struct linux_recvfrom_args {
int s;
void *buf;
int len;
int flags;
struct sockaddr *from;
int *fromlen;
struct linux_sys_getsockname_args {
syscallarg(int) s;
syscallarg(struct sockaddr *) addr;
syscallarg(int *) namelen;
};
struct linux_shutdown_args {
int s;
int how;
struct linux_sys_getpeername_args {
syscallarg(int) s;
syscallarg(struct sockaddr *) addr;
syscallarg(int *) namelen;
};
struct linux_getsockopt_args {
int s;
int level;
int optname;
void *optval;
int *optlen;
struct linux_sys_send_args {
syscallarg(int) s;
syscallarg(void *) msg;
syscallarg(int) len;
syscallarg(int) flags;
};
struct linux_setsockopt_args {
int s;
int level;
int optname;
void *optval;
int optlen;
struct linux_sys_recv_args {
syscallarg(int) s;
syscallarg(void *) msg;
syscallarg(int) len;
syscallarg(int) flags;
};
#endif /* _LINUX_SOCKETCALL_H */
struct linux_sys_shutdown_args {
syscallarg(int) s;
syscallarg(int) how;
};
struct linux_sys_sendmsg_args {
syscallarg(int) s;
syscallarg(struct msghdr *) msg;
syscallarg(u_int) flags;
};
struct linux_sys_recvmsg_args {
syscallarg(int) s;
syscallarg(struct msghdr *) msg;
syscallarg(u_int) flags;
};
#ifdef _KERNEL
__BEGIN_DECLS
int linux_sys_socket __P((struct proc *, void *, register_t *));
int linux_sys_socketpair __P((struct proc *, void *, register_t *));
int linux_sys_sendto __P((struct proc *, void *, register_t *));
int linux_sys_recvfrom __P((struct proc *, void *, register_t *));
int linux_sys_setsockopt __P((struct proc *, void *, register_t *));
int linux_sys_getsockopt __P((struct proc *, void *, register_t *));
__END_DECLS
#endif /* !_KERNEL */
#endif /* !_MULTIARCH_LINUX_SOCKETCALL_H */

View File

@ -1,162 +0,0 @@
/* $NetBSD: linux_socketcall.h,v 1.1 1995/02/28 23:26:05 fvdl Exp $ */
/*
* Copyright (c) 1995 Frank van der Linden
* 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 for the NetBSD Project
* by Frank van der Linden
* 4. The name of the author may not be used to endorse or promote products
* derived from this software without specific prior written permission
*
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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.
*/
#ifndef _LINUX_SOCKETCALL_H
#define _LINUX_SOCKETCALL_H
/*
* Values passed to the Linux socketcall() syscall, determining the actual
* action to take.
*/
#define LINUX_SYS_socket 1
#define LINUX_SYS_bind 2
#define LINUX_SYS_connect 3
#define LINUX_SYS_listen 4
#define LINUX_SYS_accept 5
#define LINUX_SYS_getsockname 6
#define LINUX_SYS_getpeername 7
#define LINUX_SYS_socketpair 8
#define LINUX_SYS_send 9
#define LINUX_SYS_recv 10
#define LINUX_SYS_sendto 11
#define LINUX_SYS_recvfrom 12
#define LINUX_SYS_shutdown 13
#define LINUX_SYS_setsockopt 14
#define LINUX_SYS_getsockopt 15
/*
* Structures for the arguments of the different system calls. This looks
* a little better than copyin() of all values one by one.
*/
struct linux_socket_args {
int domain;
int type;
int protocol;
};
struct linux_bind_args {
int s;
struct sockaddr *name;
int namelen;
};
struct linux_connect_args {
int s;
struct sockaddr *name;
int namelen;
};
struct linux_listen_args {
int s;
int backlog;
};
struct linux_accept_args {
int s;
struct sockaddr *addr;
int *namelen;
};
struct linux_getsockname_args {
int s;
struct sockaddr *addr;
int *namelen;
};
struct linux_getpeername_args {
int s;
struct sockaddr *addr;
int *namelen;
};
struct linux_socketpair_args {
int domain;
int type;
int protocol;
int *rsv;
};
struct linux_send_args {
int s;
void *msg;
int len;
int flags;
};
struct linux_recv_args {
int s;
void *msg;
int len;
int flags;
};
struct linux_sendto_args {
int s;
void *msg;
int len;
int flags;
struct sockaddr *to;
int tolen;
};
struct linux_recvfrom_args {
int s;
void *buf;
int len;
int flags;
struct sockaddr *from;
int *fromlen;
};
struct linux_shutdown_args {
int s;
int how;
};
struct linux_getsockopt_args {
int s;
int level;
int optname;
void *optval;
int *optlen;
};
struct linux_setsockopt_args {
int s;
int level;
int optname;
void *optval;
int optlen;
};
#endif /* _LINUX_SOCKETCALL_H */

View File

@ -1,162 +0,0 @@
/* $NetBSD: linux_socketcall.h,v 1.1 1995/02/28 23:26:05 fvdl Exp $ */
/*
* Copyright (c) 1995 Frank van der Linden
* 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 for the NetBSD Project
* by Frank van der Linden
* 4. The name of the author may not be used to endorse or promote products
* derived from this software without specific prior written permission
*
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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.
*/
#ifndef _LINUX_SOCKETCALL_H
#define _LINUX_SOCKETCALL_H
/*
* Values passed to the Linux socketcall() syscall, determining the actual
* action to take.
*/
#define LINUX_SYS_socket 1
#define LINUX_SYS_bind 2
#define LINUX_SYS_connect 3
#define LINUX_SYS_listen 4
#define LINUX_SYS_accept 5
#define LINUX_SYS_getsockname 6
#define LINUX_SYS_getpeername 7
#define LINUX_SYS_socketpair 8
#define LINUX_SYS_send 9
#define LINUX_SYS_recv 10
#define LINUX_SYS_sendto 11
#define LINUX_SYS_recvfrom 12
#define LINUX_SYS_shutdown 13
#define LINUX_SYS_setsockopt 14
#define LINUX_SYS_getsockopt 15
/*
* Structures for the arguments of the different system calls. This looks
* a little better than copyin() of all values one by one.
*/
struct linux_socket_args {
int domain;
int type;
int protocol;
};
struct linux_bind_args {
int s;
struct sockaddr *name;
int namelen;
};
struct linux_connect_args {
int s;
struct sockaddr *name;
int namelen;
};
struct linux_listen_args {
int s;
int backlog;
};
struct linux_accept_args {
int s;
struct sockaddr *addr;
int *namelen;
};
struct linux_getsockname_args {
int s;
struct sockaddr *addr;
int *namelen;
};
struct linux_getpeername_args {
int s;
struct sockaddr *addr;
int *namelen;
};
struct linux_socketpair_args {
int domain;
int type;
int protocol;
int *rsv;
};
struct linux_send_args {
int s;
void *msg;
int len;
int flags;
};
struct linux_recv_args {
int s;
void *msg;
int len;
int flags;
};
struct linux_sendto_args {
int s;
void *msg;
int len;
int flags;
struct sockaddr *to;
int tolen;
};
struct linux_recvfrom_args {
int s;
void *buf;
int len;
int flags;
struct sockaddr *from;
int *fromlen;
};
struct linux_shutdown_args {
int s;
int how;
};
struct linux_getsockopt_args {
int s;
int level;
int optname;
void *optval;
int *optlen;
};
struct linux_setsockopt_args {
int s;
int level;
int optname;
void *optval;
int optlen;
};
#endif /* _LINUX_SOCKETCALL_H */

View File

@ -1,4 +1,40 @@
/* $NetBSD: linux_socketcall.h,v 1.1 1995/02/28 23:26:05 fvdl Exp $ */
/* $NetBSD: linux_socketcall.h,v 1.2 1998/10/01 03:34:50 erh Exp $ */
/*-
* Copyright (c) 1998 The NetBSD Foundation, Inc.
* All rights reserved.
*
* This code is derived from software contributed to The NetBSD Foundation
* by Eric Haszlakiewicz.
*
* 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 NetBSD
* Foundation, Inc. and its contributors.
* 4. Neither the name of The NetBSD Foundation 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 NETBSD FOUNDATION, INC. 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 FOUNDATION 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.
*/
/*
* Copyright (c) 1995 Frank van der Linden
@ -31,13 +67,17 @@
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#ifndef _LINUX_SOCKETCALL_H
#define _LINUX_SOCKETCALL_H
#ifndef _MULTIARCH_LINUX_SOCKETCALL_H
#define _MULTIARCH_LINUX_SOCKETCALL_H
/* Used on: arm, i386, m68k, mips, ppc, sparc, sparc64 */
/* Not used on: alpha */
/*
* Values passed to the Linux socketcall() syscall, determining the actual
* action to take.
*/
#define LINUX_SYS_socket 1
#define LINUX_SYS_bind 2
#define LINUX_SYS_connect 3
@ -53,110 +93,147 @@
#define LINUX_SYS_shutdown 13
#define LINUX_SYS_setsockopt 14
#define LINUX_SYS_getsockopt 15
#define LINUX_SYS_sendmsg 16
#define LINUX_SYS_recvmsg 17
#define LINUX_MAX_SOCKETCALL 17
/*
* Structures for the arguments of the different system calls. This looks
* a little better than copyin() of all values one by one.
*/
struct linux_socket_args {
int domain;
int type;
int protocol;
/* !!!: This should be at least as large as any other struct here. */
struct linux_socketcall_dummy_args {
int dummy_ints[4]; /* Max 4 ints */
void * dummy_ptrs[3]; /* Max 3 pointers */
};
struct linux_bind_args {
int s;
struct sockaddr *name;
int namelen;
struct linux_sys_socket_args {
syscallarg(int) domain;
syscallarg(int) type;
syscallarg(int) protocol;
};
struct linux_connect_args {
int s;
struct sockaddr *name;
int namelen;
struct linux_sys_socketpair_args {
syscallarg(int) domain;
syscallarg(int) type;
syscallarg(int) protocol;
syscallarg(int *) rsv;
};
struct linux_listen_args {
int s;
int backlog;
struct linux_sys_sendto_args {
syscallarg(int) s;
syscallarg(void *) msg;
syscallarg(int) len;
syscallarg(int) flags;
syscallarg(struct sockaddr *) to;
syscallarg(int) tolen;
};
struct linux_accept_args {
int s;
struct sockaddr *addr;
int *namelen;
struct linux_sys_recvfrom_args {
syscallarg(int) s;
syscallarg(void *) buf;
syscallarg(int) len;
syscallarg(int) flags;
syscallarg(struct sockaddr *) from;
syscallarg(int *) fromlen;
};
struct linux_getsockname_args {
int s;
struct sockaddr *addr;
int *namelen;
struct linux_sys_setsockopt_args {
syscallarg(int) s;
syscallarg(int) level;
syscallarg(int) optname;
syscallarg(void *) optval;
syscallarg(int) optlen;
};
struct linux_getpeername_args {
int s;
struct sockaddr *addr;
int *namelen;
struct linux_sys_getsockopt_args {
syscallarg(int) s;
syscallarg(int) level;
syscallarg(int) optname;
syscallarg(void *) optval;
syscallarg(int *) optlen;
};
struct linux_socketpair_args {
int domain;
int type;
int protocol;
int *rsv;
/* These are only used for their size: */
struct linux_sys_bind_args {
syscallarg(int) s;
syscallarg(struct sockaddr *) name;
syscallarg(int) namelen;
};
struct linux_send_args {
int s;
void *msg;
int len;
int flags;
struct linux_sys_connect_args {
syscallarg(int) s;
syscallarg(struct sockaddr *) name;
syscallarg(int) namelen;
};
struct linux_recv_args {
int s;
void *msg;
int len;
int flags;
struct linux_sys_listen_args {
syscallarg(int) s;
syscallarg(int) backlog;
};
struct linux_sendto_args {
int s;
void *msg;
int len;
int flags;
struct sockaddr *to;
int tolen;
struct linux_sys_accept_args {
syscallarg(int) s;
syscallarg(struct sockaddr *) addr;
syscallarg(int *) namelen;
};
struct linux_recvfrom_args {
int s;
void *buf;
int len;
int flags;
struct sockaddr *from;
int *fromlen;
struct linux_sys_getsockname_args {
syscallarg(int) s;
syscallarg(struct sockaddr *) addr;
syscallarg(int *) namelen;
};
struct linux_shutdown_args {
int s;
int how;
struct linux_sys_getpeername_args {
syscallarg(int) s;
syscallarg(struct sockaddr *) addr;
syscallarg(int *) namelen;
};
struct linux_getsockopt_args {
int s;
int level;
int optname;
void *optval;
int *optlen;
struct linux_sys_send_args {
syscallarg(int) s;
syscallarg(void *) msg;
syscallarg(int) len;
syscallarg(int) flags;
};
struct linux_setsockopt_args {
int s;
int level;
int optname;
void *optval;
int optlen;
struct linux_sys_recv_args {
syscallarg(int) s;
syscallarg(void *) msg;
syscallarg(int) len;
syscallarg(int) flags;
};
#endif /* _LINUX_SOCKETCALL_H */
struct linux_sys_shutdown_args {
syscallarg(int) s;
syscallarg(int) how;
};
struct linux_sys_sendmsg_args {
syscallarg(int) s;
syscallarg(struct msghdr *) msg;
syscallarg(u_int) flags;
};
struct linux_sys_recvmsg_args {
syscallarg(int) s;
syscallarg(struct msghdr *) msg;
syscallarg(u_int) flags;
};
#ifdef _KERNEL
__BEGIN_DECLS
int linux_sys_socket __P((struct proc *, void *, register_t *));
int linux_sys_socketpair __P((struct proc *, void *, register_t *));
int linux_sys_sendto __P((struct proc *, void *, register_t *));
int linux_sys_recvfrom __P((struct proc *, void *, register_t *));
int linux_sys_setsockopt __P((struct proc *, void *, register_t *));
int linux_sys_getsockopt __P((struct proc *, void *, register_t *));
__END_DECLS
#endif /* !_KERNEL */
#endif /* !_MULTIARCH_LINUX_SOCKETCALL_H */