summaryrefslogtreecommitdiff
path: root/libpthread/nptl/sysdeps/unix/sysv/linux/recvmsg.c
diff options
context:
space:
mode:
Diffstat (limited to 'libpthread/nptl/sysdeps/unix/sysv/linux/recvmsg.c')
-rw-r--r--libpthread/nptl/sysdeps/unix/sysv/linux/recvmsg.c23
1 files changed, 23 insertions, 0 deletions
diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/recvmsg.c b/libpthread/nptl/sysdeps/unix/sysv/linux/recvmsg.c
new file mode 100644
index 000000000..d0f277a97
--- /dev/null
+++ b/libpthread/nptl/sysdeps/unix/sysv/linux/recvmsg.c
@@ -0,0 +1,23 @@
+/*
+ * Copyright (C) 2017 Waldemar Brodkorb <wbx@uclibc-ng.org>
+ * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
+ */
+
+#include <sys/socket.h>
+#include <cancel.h>
+
+#ifndef __NR_recvmsg
+#error Missing definition of NR_recvmsg needed for cancellation.
+#endif
+
+ssize_t
+recvmsg (int fd, const struct msghdr *msg, int flags)
+{
+ return _syscall3(ssize_t, __NC(recvmsg), int, fd, const struct msghdr*, msg,
+ int, flags);
+}
+
+CANCELLABLE_SYSCALL(ssize_t, recvmsg, (int fd, const struct msghdr *msg,
+ int flags), (fd, msg, flags))
+
+lt_libc_hidden(recvmsg)