diff options
Diffstat (limited to 'libc/sysdeps/linux/common/sendfile64.c')
-rw-r--r-- | libc/sysdeps/linux/common/sendfile64.c | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/libc/sysdeps/linux/common/sendfile64.c b/libc/sysdeps/linux/common/sendfile64.c index 17ba803ea..3c83c81ad 100644 --- a/libc/sysdeps/linux/common/sendfile64.c +++ b/libc/sysdeps/linux/common/sendfile64.c @@ -20,27 +20,29 @@ #include <sys/sendfile.h> #include <sys/syscall.h> +#if defined __NR_sendfile64 -#if __WORDSIZE == 64 +#if __WORDSIZE == 64 || (defined(__powerpc__) && defined (__UCLIBC_HAS_LFS__)) /* For a 64 bit machine, life is simple... */ _syscall4(ssize_t,sendfile64, int, out_fd, int, in_fd, __off64_t *, offset, size_t, count) #elif __WORDSIZE == 32 #if defined __UCLIBC_HAS_LFS__ -#if defined __NR_sendfile64 _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 */ -#else ssize_t sendfile64 (int out_fd, int in_fd, __off64_t *offset, size_t count) { __set_errno (ENOSYS); return -1; } -#endif - -#endif /* __UCLIBC_HAS_LFS__ */ -#else /* __WORDSIZE */ -#error Your machine is not 64 bit or 32 bit, I am dazed and confused. #endif |