diff options
Diffstat (limited to 'libc/sysdeps/linux/common')
-rw-r--r-- | libc/sysdeps/linux/common/sendfile.c | 8 | ||||
-rw-r--r-- | libc/sysdeps/linux/common/sendfile64.c | 26 |
2 files changed, 10 insertions, 24 deletions
diff --git a/libc/sysdeps/linux/common/sendfile.c b/libc/sysdeps/linux/common/sendfile.c index ba3734f09..fe0629ca3 100644 --- a/libc/sysdeps/linux/common/sendfile.c +++ b/libc/sysdeps/linux/common/sendfile.c @@ -10,5 +10,13 @@ #include "syscalls.h" #include <unistd.h> #include <sys/sendfile.h> + _syscall4(ssize_t, sendfile, int, out_fd, int, in_fd, __off_t *, offset, size_t, count); + +#if ! defined __NR_sendfile64 && defined __UCLIBC_HAS_LFS__ +extern __typeof(sendfile) sendfile64; +libc_hidden_proto(sendfile64) +strong_alias(sendfile,sendfile64) +libc_hidden_def(sendfile64) +#endif diff --git a/libc/sysdeps/linux/common/sendfile64.c b/libc/sysdeps/linux/common/sendfile64.c index 3e704770f..ccaa8d202 100644 --- a/libc/sysdeps/linux/common/sendfile64.c +++ b/libc/sysdeps/linux/common/sendfile64.c @@ -17,30 +17,8 @@ #include <stdint.h> #include <sys/sendfile.h> #include <sys/syscall.h> +#include <bits/wordsize.h> -#if defined __NR_sendfile64 - -# if __WORDSIZE == 64 || (defined(__powerpc__) && defined (__UCLIBC_HAS_LFS__)) -/* For a 64 bit machine, life is simple... */ +#if defined __UCLIBC_HAS_LFS__ && defined __NR_sendfile64 _syscall4(ssize_t,sendfile64, int, out_fd, int, in_fd, __off64_t *, offset, size_t, count); - -# elif __WORDSIZE == 32 - -# if defined __UCLIBC_HAS_LFS__ -_syscall4(ssize_t,sendfile64, int, out_fd, int, in_fd, __off64_t *, offset, size_t, count); -# endif /* __UCLIBC_HAS_LFS__ */ - -# else /* __WORDSIZE */ -# error Your machine is not 64 bit or 32 bit, I am dazed and confused. -# endif /* __WORDSIZE */ - - -#else /* ! defined __NR_sendfile64 */ - -ssize_t sendfile64 (int out_fd, int in_fd, __off64_t *offset, size_t count) -{ - __set_errno (ENOSYS); - return -1; -} - #endif |