diff options
author | Peter S. Mazinger <ps.m@gmx.net> | 2011-04-06 15:36:54 +0200 |
---|---|---|
committer | Bernhard Reutner-Fischer <rep.dot.nop@gmail.com> | 2012-06-15 14:00:35 +0200 |
commit | 9e74047542cbe90bd63660638ceb30313327027f (patch) | |
tree | fe918ecaf613ce9e660e8c971ff5dabf25a9b39f /libc/sysdeps/linux/xtensa | |
parent | dd340d59c5bcca991047c9ef26147e5e5cbb659b (diff) |
posix_fadvise: make posix_fadvise[64] similar on all archs
Remove all versions, that can be covered by the common one.
Drop incorrectly implemented fallback support, if __NR_fadvise64_64 is not available.
To support 64 bit ppc, move ppc support into common.
Cleanup including headers.
Signed-off-by: Peter S. Mazinger <ps.m@gmx.net>
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Diffstat (limited to 'libc/sysdeps/linux/xtensa')
-rw-r--r-- | libc/sysdeps/linux/xtensa/Makefile.arch | 2 | ||||
-rw-r--r-- | libc/sysdeps/linux/xtensa/posix_fadvise.c | 22 | ||||
-rw-r--r-- | libc/sysdeps/linux/xtensa/posix_fadvise64.c | 39 |
3 files changed, 11 insertions, 52 deletions
diff --git a/libc/sysdeps/linux/xtensa/Makefile.arch b/libc/sysdeps/linux/xtensa/Makefile.arch index bf4503138..13387f2ff 100644 --- a/libc/sysdeps/linux/xtensa/Makefile.arch +++ b/libc/sysdeps/linux/xtensa/Makefile.arch @@ -8,7 +8,7 @@ CSRC := brk.c fork.c pread_write.c sigaction.c __syscall_error.c ifeq ($(UCLIBC_HAS_ADVANCED_REALTIME),y) - CSRC += posix_fadvise.c posix_fadvise64.c + CSRC += posix_fadvise.c endif SSRC := bsd-_setjmp.S bsd-setjmp.S setjmp.S clone.S \ diff --git a/libc/sysdeps/linux/xtensa/posix_fadvise.c b/libc/sysdeps/linux/xtensa/posix_fadvise.c index 0fe13a1e9..94006ec64 100644 --- a/libc/sysdeps/linux/xtensa/posix_fadvise.c +++ b/libc/sysdeps/linux/xtensa/posix_fadvise.c @@ -9,21 +9,19 @@ */ #include <sys/syscall.h> -#include <fcntl.h> + +#ifdef __NR_fadvise64_64 +# include <fcntl.h> +# include <endian.h> int posix_fadvise (int fd, off_t offset, off_t len, int advice) { -#ifdef __NR_fadvise64_64 INTERNAL_SYSCALL_DECL (err); int ret = INTERNAL_SYSCALL (fadvise64_64, err, 6, fd, advice, - __LONG_LONG_PAIR ((long) (offset >> 31), - (long) offset), - __LONG_LONG_PAIR ((long) (len >> 31), - (long) len)); - if (!INTERNAL_SYSCALL_ERROR_P (ret, err)) - return 0; - return INTERNAL_SYSCALL_ERRNO (ret, err); -#else - return ENOSYS; -#endif + __LONG_LONG_PAIR ((long) (offset >> 31), (long) offset), + __LONG_LONG_PAIR ((long) (len >> 31), (long) len)); + if (INTERNAL_SYSCALL_ERROR_P (ret, err)) + return INTERNAL_SYSCALL_ERRNO (ret, err); + return 0; } +#endif diff --git a/libc/sysdeps/linux/xtensa/posix_fadvise64.c b/libc/sysdeps/linux/xtensa/posix_fadvise64.c deleted file mode 100644 index 1fdeeba79..000000000 --- a/libc/sysdeps/linux/xtensa/posix_fadvise64.c +++ /dev/null @@ -1,39 +0,0 @@ -/* vi: set sw=4 ts=4: */ -/* - * posix_fadvise64() for Xtensa uClibc - * - * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org> - * Copyright (C) 2007 Tensilica Inc. - * - * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball. - */ - -#include <features.h> -#include <unistd.h> -#include <errno.h> -#include <endian.h> -#include <stdint.h> -#include <sys/types.h> -#include <sys/syscall.h> -#include <fcntl.h> - -#ifdef __UCLIBC_HAS_LFS__ - -int posix_fadvise64 (int fd, __off64_t offset, __off64_t len, int advice) -{ -#ifdef __NR_fadvise64_64 - INTERNAL_SYSCALL_DECL (err); - int ret = INTERNAL_SYSCALL (fadvise64_64, err, 6, fd, advice, - __LONG_LONG_PAIR ((long) (offset >> 32), - (long) offset), - __LONG_LONG_PAIR ((long) (len >> 32), - (long) len)); - if (!INTERNAL_SYSCALL_ERROR_P (ret, err)) - return 0; - return INTERNAL_SYSCALL_ERRNO (ret, err); -#else - return ENOSYS; -#endif -} - -#endif /* __UCLIBC_HAS_LFS__ */ |