From dcbff4072b6b3e79d768e50c2d58ccc8e307b1bd Mon Sep 17 00:00:00 2001 From: Waldemar Brodkorb Date: Sun, 16 Jul 2017 11:34:54 +0200 Subject: nptl: remove sysdep-cancel ASM macros, convert to C --- libpthread/nptl/sysdeps/unix/sysv/linux/recvfrom.c | 26 ++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 libpthread/nptl/sysdeps/unix/sysv/linux/recvfrom.c (limited to 'libpthread/nptl/sysdeps/unix/sysv/linux/recvfrom.c') diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/recvfrom.c b/libpthread/nptl/sysdeps/unix/sysv/linux/recvfrom.c new file mode 100644 index 000000000..623b62fa0 --- /dev/null +++ b/libpthread/nptl/sysdeps/unix/sysv/linux/recvfrom.c @@ -0,0 +1,26 @@ +/* + * Copyright (C) 2017 Waldemar Brodkorb + * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball. + */ + +#include +#include + +#ifndef __NR_recvfrom +#error Missing definition of NR_recvfrom needed for cancellation. +#endif + +ssize_t +recvfrom (int fd, const void *buf, size_t len, int flags, + __SOCKADDR_ARG addr, socklen_t addrlen) +{ + return _syscall6(ssize_t, __NC(recvfrom), int, fd, const void* buf, + size_t, len, int, flags, __SOCKADDR_ARG, + addr.__sockaddr__, socklen_t, addrlen); +} + +CANCELLABLE_SYSCALL(ssize_t, recvfrom, (int fd, const void *buf, + size_t len, int flags, __SOCKADDR_ARG addr, + socklen_t addrlen), (fd, buf, len, flags, addr, addrlen)) + +lt_libc_hidden(recvfrom) -- cgit v1.2.3