diff options
Diffstat (limited to 'sysdeps/unix/sysv/linux/recv.c')
-rw-r--r-- | sysdeps/unix/sysv/linux/recv.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/sysdeps/unix/sysv/linux/recv.c b/sysdeps/unix/sysv/linux/recv.c index cd2bc1e101..250159fa6a 100644 --- a/sysdeps/unix/sysv/linux/recv.c +++ b/sysdeps/unix/sysv/linux/recv.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2015 Free Software Foundation, Inc. +/* Copyright (C) 2015-2016 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -21,11 +21,19 @@ #include <sysdep-cancel.h> #include <socketcall.h> +#include <kernel-features.h> +#include <sys/syscall.h> ssize_t __libc_recv (int fd, void *buf, size_t len, int flags) { +#ifdef __ASSUME_RECV_SYSCALL + return SYSCALL_CANCEL (recv, fd, buf, len, flags); +#elif defined __ASSUME_RECVFROM_FOR_RECV_SYSCALL + return SYSCALL_CANCEL (recvfrom, fd, buf, len, flags, NULL, NULL); +#else return SOCKETCALL_CANCEL (recv, fd, buf, len, flags); +#endif } weak_alias (__libc_recv, recv) weak_alias (__libc_recv, __recv) |