Move compat/linux/linux_socketcall.h to multiarch. Defines for the socketcall multiplexer.
This commit is contained in:
parent
81cc399a4d
commit
658c307a1a
|
@ -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 */
|
||||
|
|
|
@ -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 */
|
|
@ -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 */
|
|
@ -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 */
|
||||
|
|
Loading…
Reference in New Issue