diff options
Diffstat (limited to 'libpthread/nptl/sysdeps/unix/sysv/linux/recvfrom.c')
-rw-r--r-- | libpthread/nptl/sysdeps/unix/sysv/linux/recvfrom.c | 26 |
1 files changed, 26 insertions, 0 deletions
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 <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_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) |