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/arm | |
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/arm')
-rw-r--r-- | libc/sysdeps/linux/arm/Makefile.arch | 2 | ||||
-rw-r--r-- | libc/sysdeps/linux/arm/posix_fadvise.c | 24 | ||||
-rw-r--r-- | libc/sysdeps/linux/arm/posix_fadvise64.c | 59 |
3 files changed, 5 insertions, 80 deletions
diff --git a/libc/sysdeps/linux/arm/Makefile.arch b/libc/sysdeps/linux/arm/Makefile.arch index 0cc2626f3..5fc3e545f 100644 --- a/libc/sysdeps/linux/arm/Makefile.arch +++ b/libc/sysdeps/linux/arm/Makefile.arch @@ -17,7 +17,7 @@ SSRC += libc-aeabi_read_tp.S libc-thumb_atomics.S endif ifeq ($(UCLIBC_HAS_ADVANCED_REALTIME),y) -CSRC += posix_fadvise.c posix_fadvise64.c +CSRC += posix_fadvise.c endif # Is our compiler set up for EABI ? diff --git a/libc/sysdeps/linux/arm/posix_fadvise.c b/libc/sysdeps/linux/arm/posix_fadvise.c index d8ba58fc2..f59cbfb6e 100644 --- a/libc/sysdeps/linux/arm/posix_fadvise.c +++ b/libc/sysdeps/linux/arm/posix_fadvise.c @@ -8,18 +8,12 @@ * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball. */ #include <sys/syscall.h> -#include <fcntl.h> -#if defined __NR_arm_fadvise64_64 +#ifdef __NR_arm_fadvise64_64 +# include <fcntl.h> +# include <endian.h> -#define HIGH_BITS(x) (sizeof(x) > 4 ? (x) >> 32 : 0) - -/* Was named __libc_posix_fadvise for some inexplicable reason. -** google says only uclibc has *__libc*_posix_fadviseXXX, -** so it cannot be compat with anything. -** -** Remove this comment and one at the end after 0.9.31 -*/ +# define HIGH_BITS(x) (sizeof(x) > 4 ? (x) >> 32 : 0) /* This is for the ARM version of fadvise64_64 which swaps the params * about to avoid having ABI compat issues @@ -36,14 +30,4 @@ int posix_fadvise(int fd, off_t offset, off_t len, int advise) return INTERNAL_SYSCALL_ERRNO (ret, err); return 0; } - -/* weak_alias(__libc_posix_fadvise, posix_fadvise); */ - -#elif defined __UCLIBC_HAS_STUBS__ - -int posix_fadvise(int fd attribute_unused, off_t offset attribute_unused, off_t len attribute_unused, int advice attribute_unused) -{ - return ENOSYS; -} - #endif diff --git a/libc/sysdeps/linux/arm/posix_fadvise64.c b/libc/sysdeps/linux/arm/posix_fadvise64.c deleted file mode 100644 index 678c42f90..000000000 --- a/libc/sysdeps/linux/arm/posix_fadvise64.c +++ /dev/null @@ -1,59 +0,0 @@ -/* vi: set sw=4 ts=4: */ -/* - * posix_fadvise64() for ARM uClibc - * http://www.opengroup.org/onlinepubs/009695399/functions/posix_fadvise.html - * - * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org> - * - * 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__ - -#if defined __NR_arm_fadvise64_64 - -/* Was named __libc_posix_fadvise64 for some inexplicable reason. -** google says only uclibc has *__libc*_posix_fadviseXXX, -** so it cannot be compat with anything. -** -** Remove this comment and one at the end after 0.9.31 -*/ - -/* This is for the ARM version of fadvise64_64 which swaps the params - * about to avoid having ABI compat issues - */ -#define __NR___syscall_arm_fadvise64_64 __NR_arm_fadvise64_64 -int posix_fadvise64(int fd, __off64_t offset, __off64_t len, int advise) -{ - INTERNAL_SYSCALL_DECL (err); - int ret = INTERNAL_SYSCALL (arm_fadvise64_64, err, 6, fd, advise, - __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; - if (INTERNAL_SYSCALL_ERRNO (ret, err) != ENOSYS) - return INTERNAL_SYSCALL_ERRNO (ret, err); - return 0; -} - -/* weak_alias(__libc_posix_fadvise64, posix_fadvise64); */ - -#elif defined __UCLIBC_HAS_STUBS__ - -int posix_fadvise64(int fd, __off64_t offset, __off64_t len, int advise) -{ - return ENOSYS; -} - -#endif - -#endif |