diff options
author | "Steven J. Hill" <sjhill@realitydiluted.com> | 2006-02-28 03:18:23 +0000 |
---|---|---|
committer | "Steven J. Hill" <sjhill@realitydiluted.com> | 2006-02-28 03:18:23 +0000 |
commit | 675d62ac876ffe4719580d45b8c9469934ccf6d7 (patch) | |
tree | e666bd4a1d816842c070e4928715d66b82655fc2 /libc/sysdeps/linux/common/sendfile64.c | |
parent | fd666fca933f7241ff75d06ff36c9282fd443335 (diff) | |
download | uClibc-alpine-675d62ac876ffe4719580d45b8c9469934ccf6d7.tar.bz2 uClibc-alpine-675d62ac876ffe4719580d45b8c9469934ccf6d7.tar.xz |
Merge from trunk.
Diffstat (limited to 'libc/sysdeps/linux/common/sendfile64.c')
-rw-r--r-- | libc/sysdeps/linux/common/sendfile64.c | 38 |
1 files changed, 7 insertions, 31 deletions
diff --git a/libc/sysdeps/linux/common/sendfile64.c b/libc/sysdeps/linux/common/sendfile64.c index 9c7c0ad3c..ccaa8d202 100644 --- a/libc/sysdeps/linux/common/sendfile64.c +++ b/libc/sysdeps/linux/common/sendfile64.c @@ -1,15 +1,13 @@ /* - * sendfile64 syscall. Copes with 64 bit and 32 bit machines + * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org> + * + * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball. + */ +/* sendfile64 syscall. Copes with 64 bit and 32 bit machines * and on 32 bit machines this sends things into the kernel as * two 32-bit arguments (high and low 32 bits of length) that * are ordered based on endianess. It turns out endian.h has * just the macro we need to order things, __LONG_LONG_PAIR. - * - * Copyright (C) 2002 Erik Andersen <andersen@codepoet.org> - * - * This file is subject to the terms and conditions of the GNU - * Lesser General Public License. See the file COPYING.LIB in - * the main directory of this archive for more details. */ #include <features.h> @@ -19,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 |