aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/include/linux/socket.h
diff options
context:
space:
mode:
authorJens Axboe <axboe@kernel.dk>2019-04-19 13:38:09 -0600
committerJens Axboe <axboe@kernel.dk>2019-07-09 14:32:14 -0600
commitaa1fa28fc73ea6b740ee7b62bf3b07141883dbb8 (patch)
tree85963ae2cf72deda9bea41efd9492c94e9344b8b /include/linux/socket.h
parentio_uring: add support for sendmsg() (diff)
downloadwireguard-linux-aa1fa28fc73ea6b740ee7b62bf3b07141883dbb8.tar.xz
wireguard-linux-aa1fa28fc73ea6b740ee7b62bf3b07141883dbb8.zip
io_uring: add support for recvmsg()
This is done through IORING_OP_RECVMSG. This opcode uses the same sqe->msg_flags that IORING_OP_SENDMSG added, and we pass in the msghdr struct in the sqe->addr field as well. We use MSG_DONTWAIT to force an inline fast path if recvmsg() doesn't block, and punt to async execution if it would have. Acked-by: David S. Miller <davem@davemloft.net> Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'include/linux/socket.h')
-rw-r--r--include/linux/socket.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/include/linux/socket.h b/include/linux/socket.h
index 9d770ef3ced5..97523818cb14 100644
--- a/include/linux/socket.h
+++ b/include/linux/socket.h
@@ -378,6 +378,9 @@ extern int __sys_sendmmsg(int fd, struct mmsghdr __user *mmsg,
extern long __sys_sendmsg_sock(struct socket *sock,
struct user_msghdr __user *msg,
unsigned int flags);
+extern long __sys_recvmsg_sock(struct socket *sock,
+ struct user_msghdr __user *msg,
+ unsigned int flags);
/* helpers which do the actual work for syscalls */
extern int __sys_recvfrom(int fd, void __user *ubuf, size_t size,