2 * Wrappers for recvmmsg and sendmmsg syscalls.
4 * Copyright (c) 2016-2018 Dmitry V. Levin <ldv@altlinux.org>
7 * SPDX-License-Identifier: GPL-2.0-or-later
15 # define __NR_recvmmsg -1
17 #define SC_recvmmsg 19
20 # define __NR_sendmmsg -1
22 #define SC_sendmmsg 20
25 recv_mmsg(const int fd, struct mmsghdr *const vec,
26 const unsigned int vlen, const unsigned int flags,
27 struct timespec *const timeout)
29 int rc = socketcall(__NR_recvmmsg, SC_recvmmsg,
30 fd, (long) vec, vlen, flags, (long) timeout);
32 if (rc < 0 && ENOSYS == errno)
33 perror_msg_and_skip("recvmmsg");
39 send_mmsg(const int fd, struct mmsghdr *const vec,
40 const unsigned int vlen, const unsigned int flags)
42 int rc = socketcall(__NR_sendmmsg, SC_sendmmsg,
43 fd, (long) vec, vlen, flags, 0);
45 if (rc < 0 && ENOSYS == errno)
46 perror_msg_and_skip("sendmmsg");