|
@@ -20,27 +20,29 @@
|
|
|
#include <sys/sendfile.h>
|
|
#include <sys/sendfile.h>
|
|
|
#include <sys/syscall.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... */
|
|
/* For a 64 bit machine, life is simple... */
|
|
|
_syscall4(ssize_t,sendfile64, int, out_fd, int, in_fd, __off64_t *, offset, size_t, count)
|
|
_syscall4(ssize_t,sendfile64, int, out_fd, int, in_fd, __off64_t *, offset, size_t, count)
|
|
|
|
|
|
|
|
#elif __WORDSIZE == 32
|
|
#elif __WORDSIZE == 32
|
|
|
|
|
|
|
|
#if defined __UCLIBC_HAS_LFS__
|
|
#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)
|
|
_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)
|
|
ssize_t sendfile64 (int out_fd, int in_fd, __off64_t *offset, size_t count)
|
|
|
{
|
|
{
|
|
|
__set_errno (ENOSYS);
|
|
__set_errno (ENOSYS);
|
|
|
return -1;
|
|
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
|
|
#endif
|