summaryrefslogtreecommitdiff
path: root/bin/systrace/linux_socketcall.h
diff options
context:
space:
mode:
authorNikolay Sturm <sturm@cvs.openbsd.org>2006-07-02 12:34:16 +0000
committerNikolay Sturm <sturm@cvs.openbsd.org>2006-07-02 12:34:16 +0000
commit36207a330ccf1cae7cf91b22b4e4b123030ab8be (patch)
tree89d6f8534a819d485ce5c89a5adbe563f11df94a /bin/systrace/linux_socketcall.h
parent7b13dfe1cf22c6103eb7dc6d10eef85c9ddcf53f (diff)
sync with systrace 1.6d, keeping local changes
tests and feedback by a few
Diffstat (limited to 'bin/systrace/linux_socketcall.h')
-rw-r--r--bin/systrace/linux_socketcall.h196
1 files changed, 196 insertions, 0 deletions
diff --git a/bin/systrace/linux_socketcall.h b/bin/systrace/linux_socketcall.h
new file mode 100644
index 00000000000..be5337ee084
--- /dev/null
+++ b/bin/systrace/linux_socketcall.h
@@ -0,0 +1,196 @@
+/* $OpenBSD: linux_socketcall.h,v 1.1 2006/07/02 12:34:15 sturm Exp $ */
+/* $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.
+ */
+char *linux_socketcall_names[] = {
+ NULL,
+#define LINUX_SYS_socket 1
+ "socket",
+#define LINUX_SYS_bind 2
+ "bind",
+#define LINUX_SYS_connect 3
+ "connect",
+#define LINUX_SYS_listen 4
+ "listen",
+#define LINUX_SYS_accept 5
+ "accept",
+#define LINUX_SYS_getsockname 6
+ "getsockname",
+#define LINUX_SYS_getpeername 7
+ "getpeername",
+#define LINUX_SYS_socketpair 8
+ "socketpair",
+#define LINUX_SYS_send 9
+ "send",
+#define LINUX_SYS_recv 10
+ "recv",
+#define LINUX_SYS_sendto 11
+ "sendto",
+#define LINUX_SYS_recvfrom 12
+ "recvfrom",
+#define LINUX_SYS_shutdown 13
+ "shutdown",
+#define LINUX_SYS_setsockopt 14
+ "setsockopt",
+#define LINUX_SYS_getsockopt 15
+ "getsockopt",
+#define LINUX_SYS_sendmsg 16
+ "sendmsg",
+#define LINUX_SYS_recvmsg 17
+ "recvmsg" };
+
+/*
+ * 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;
+};
+
+struct linux_sendmsg_args {
+ int s;
+ struct msghdr *msg;
+ int flags;
+};
+
+struct linux_recvmsg_args {
+ int s;
+ struct msghdr *msg;
+ int flags;
+};
+
+#endif /* _LINUX_SOCKETCALL_H */