From 3a3f0740bb8caf05b648db603122a184c8817df6 Mon Sep 17 00:00:00 2001 From: Dave Jones Date: Tue, 15 Apr 2014 16:45:36 -0400 Subject: [PATCH] merge recv* syscalls --- syscalls/recv.c | 72 ++++++++++++++++++++++++++++++++++++++++++++++++++--- syscalls/recvfrom.c | 35 -------------------------- syscalls/recvmmsg.c | 33 ------------------------ 3 files changed, 68 insertions(+), 72 deletions(-) delete mode 100644 syscalls/recvfrom.c delete mode 100644 syscalls/recvmmsg.c diff --git a/syscalls/recv.c b/syscalls/recv.c index d2f907b..5a91abd 100644 --- a/syscalls/recv.c +++ b/syscalls/recv.c @@ -3,6 +3,7 @@ unsigned flags) */ +#include #include #include "compat.h" #include "sanitise.h" @@ -20,10 +21,73 @@ struct syscallentry syscall_recv = { .arg4type = ARG_LIST, .arg4list = { .num = 20, - .values = { MSG_DONTWAIT, MSG_ERRQUEUE, MSG_ERRQUEUE, - MSG_ERRQUEUE, MSG_OOB, MSG_PEEK, MSG_TRUNC, - MSG_WAITALL, MSG_EOR, MSG_TRUNC, MSG_CTRUNC, - MSG_OOB, MSG_ERRQUEUE }, + .values = { MSG_OOB, MSG_PEEK, MSG_DONTROUTE, MSG_CTRUNC, + MSG_PROBE, MSG_TRUNC, MSG_DONTWAIT, MSG_EOR, + MSG_WAITALL, MSG_FIN, MSG_SYN, MSG_CONFIRM, + MSG_RST, MSG_ERRQUEUE, MSG_NOSIGNAL, MSG_MORE, + MSG_WAITFORONE, MSG_FASTOPEN, MSG_CMSG_CLOEXEC, MSG_CMSG_COMPAT }, }, .flags = NEED_ALARM, }; + + +/* + * SYSCALL_DEFINE6(recvfrom, int, fd, void __user *, ubuf, size_t, size, + unsigned, flags, struct sockaddr __user *, addr, + int __user *, addr_len) + */ +struct syscallentry syscall_recvfrom = { + .name = "recvfrom", + .num_args = 6, + .arg1name = "fd", + .arg1type = ARG_FD, + .arg2name = "ubuf", + .arg2type = ARG_ADDRESS, + .arg3name = "size", + .arg3type = ARG_LEN, + .arg4name = "flags", + .arg4type = ARG_LIST, + .arg4list = { + .num = 20, + .values = { MSG_OOB, MSG_PEEK, MSG_DONTROUTE, MSG_CTRUNC, + MSG_PROBE, MSG_TRUNC, MSG_DONTWAIT, MSG_EOR, + MSG_WAITALL, MSG_FIN, MSG_SYN, MSG_CONFIRM, + MSG_RST, MSG_ERRQUEUE, MSG_NOSIGNAL, MSG_MORE, + MSG_WAITFORONE, MSG_FASTOPEN, MSG_CMSG_CLOEXEC, MSG_CMSG_COMPAT }, + }, + .arg5name = "addr", + .arg5type = ARG_SOCKADDR, + .arg6name = "addr_len", + .arg6type = ARG_SOCKADDRLEN, + .flags = NEED_ALARM, +}; + + +/* + * SYSCALL_DEFINE5(recvmmsg, int, fd, struct mmsghdr __user *, mmsg, + unsigned int, vlen, unsigned int, flags, + struct timespec __user *, timeout) + */ +struct syscallentry syscall_recvmmsg = { + .name = "recvmmsg", + .num_args = 5, + .arg1name = "fd", + .arg1type = ARG_FD, + .arg2name = "mmsg", + .arg2type = ARG_ADDRESS, + .arg3name = "vlen", + .arg3type = ARG_LEN, + .arg4name = "flags", + .arg4type = ARG_LIST, + .arg4list = { + .num = 20, + .values = { MSG_OOB, MSG_PEEK, MSG_DONTROUTE, MSG_CTRUNC, + MSG_PROBE, MSG_TRUNC, MSG_DONTWAIT, MSG_EOR, + MSG_WAITALL, MSG_FIN, MSG_SYN, MSG_CONFIRM, + MSG_RST, MSG_ERRQUEUE, MSG_NOSIGNAL, MSG_MORE, + MSG_WAITFORONE, MSG_CMSG_CLOEXEC, MSG_FASTOPEN, MSG_CMSG_COMPAT }, + }, + .arg5name = "timeout", + .arg5type = ARG_ADDRESS, + .flags = NEED_ALARM, +}; diff --git a/syscalls/recvfrom.c b/syscalls/recvfrom.c deleted file mode 100644 index 767c34e..0000000 --- a/syscalls/recvfrom.c +++ /dev/null @@ -1,35 +0,0 @@ -/* - * SYSCALL_DEFINE6(recvfrom, int, fd, void __user *, ubuf, size_t, size, - unsigned, flags, struct sockaddr __user *, addr, - int __user *, addr_len) - */ -#include -#include -#include "compat.h" -#include "sanitise.h" - -struct syscallentry syscall_recvfrom = { - .name = "recvfrom", - .num_args = 6, - .arg1name = "fd", - .arg1type = ARG_FD, - .arg2name = "ubuf", - .arg2type = ARG_ADDRESS, - .arg3name = "size", - .arg3type = ARG_LEN, - .arg4name = "flags", - .arg4type = ARG_LIST, - .arg4list = { - .num = 20, - .values = { MSG_OOB, MSG_PEEK, MSG_DONTROUTE, MSG_CTRUNC, - MSG_PROBE, MSG_TRUNC, MSG_DONTWAIT, MSG_EOR, - MSG_WAITALL, MSG_FIN, MSG_SYN, MSG_CONFIRM, - MSG_RST, MSG_ERRQUEUE, MSG_NOSIGNAL, MSG_MORE, - MSG_WAITFORONE, MSG_FASTOPEN, MSG_CMSG_CLOEXEC, MSG_CMSG_COMPAT }, - }, - .arg5name = "addr", - .arg5type = ARG_SOCKADDR, - .arg6name = "addr_len", - .arg6type = ARG_SOCKADDRLEN, - .flags = NEED_ALARM, -}; diff --git a/syscalls/recvmmsg.c b/syscalls/recvmmsg.c deleted file mode 100644 index 3bd5be8..0000000 --- a/syscalls/recvmmsg.c +++ /dev/null @@ -1,33 +0,0 @@ -/* - * SYSCALL_DEFINE5(recvmmsg, int, fd, struct mmsghdr __user *, mmsg, - unsigned int, vlen, unsigned int, flags, - struct timespec __user *, timeout) - */ - -#include -#include "compat.h" -#include "sanitise.h" - -struct syscallentry syscall_recvmmsg = { - .name = "recvmmsg", - .num_args = 5, - .arg1name = "fd", - .arg1type = ARG_FD, - .arg2name = "mmsg", - .arg2type = ARG_ADDRESS, - .arg3name = "vlen", - .arg3type = ARG_LEN, - .arg4name = "flags", - .arg4type = ARG_LIST, - .arg4list = { - .num = 20, - .values = { MSG_OOB, MSG_PEEK, MSG_DONTROUTE, MSG_CTRUNC, - MSG_PROBE, MSG_TRUNC, MSG_DONTWAIT, MSG_EOR, - MSG_WAITALL, MSG_FIN, MSG_SYN, MSG_CONFIRM, - MSG_RST, MSG_ERRQUEUE, MSG_NOSIGNAL, MSG_MORE, - MSG_WAITFORONE, MSG_CMSG_CLOEXEC, MSG_FASTOPEN, MSG_CMSG_COMPAT }, - }, - .arg5name = "timeout", - .arg5type = ARG_ADDRESS, - .flags = NEED_ALARM, -}; -- 2.11.4.GIT