summaryrefslogtreecommitdiff
path: root/libc/sysdeps
diff options
context:
space:
mode:
authorBaruch Siach <baruch@tkos.co.il>2014-01-05 11:44:02 +0200
committerBernhard Reutner-Fischer <rep.dot.nop@gmail.com>2014-01-08 12:34:31 +0100
commit00571b43df2e0554d1b0716681832ba9975177c5 (patch)
tree1bee9b6da11d279e5ad22bfd0d91cba778394ef8 /libc/sysdeps
parentb97b4b698b023f75b54f987859c856ab4861ea00 (diff)
libc: posix_fadvise: restore implementation for xtensa
Commit ee84b8b400 (linux: posix_fadvise: use new SYSCALL_ALIGN_64BIT) removed posix_fadvise implementation for xtensa, since xtensa does not define __NR_fadvise64. Reuse the ARM support code to restore xtensa support. This commit is based Mike Frysinger's suggested patch. Cc: Mike Frysinger <vapier@gentoo.org> Signed-off-by: Baruch Siach <baruch@tkos.co.il> Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Diffstat (limited to 'libc/sysdeps')
-rw-r--r--libc/sysdeps/linux/common/posix_fadvise.c15
1 files changed, 11 insertions, 4 deletions
diff --git a/libc/sysdeps/linux/common/posix_fadvise.c b/libc/sysdeps/linux/common/posix_fadvise.c
index e102ce7af..25c294178 100644
--- a/libc/sysdeps/linux/common/posix_fadvise.c
+++ b/libc/sysdeps/linux/common/posix_fadvise.c
@@ -10,18 +10,25 @@
#include <sys/syscall.h>
-#if defined(__NR_fadvise64) || defined(__NR_arm_fadvise64_64)
+#ifdef __NR_arm_fadvise64_64
+/* We handle the 64bit alignment issue which is why the arm guys renamed their
+ * syscall in the first place. So rename it back.
+ */
+# define __NR_fadvise64_64 __NR_arm_fadvise64_64
+#endif
+
+#if defined(__NR_fadvise64) || defined(__NR_fadvise64_64)
# include <fcntl.h>
# include <endian.h>
# include <bits/wordsize.h>
-# ifdef __NR_arm_fadvise64_64
+# ifdef __NR_fadvise64_64
int posix_fadvise64(int fd, off64_t offset, off64_t len, int advice);
# endif
int posix_fadvise(int fd, off_t offset, off_t len, int advice)
{
-# ifdef __NR_arm_fadvise64_64
+# ifdef __NR_fadvise64_64
return posix_fadvise64(fd, offset, len, advice);
# else
int ret;
@@ -41,7 +48,7 @@ int posix_fadvise(int fd, off_t offset, off_t len, int advice)
return 0;
# endif
}
-# if defined __UCLIBC_HAS_LFS__ && ((!defined __NR_fadvise64_64 && !defined __NR_arm_fadvise64_64) || __WORDSIZE == 64)
+# if defined __UCLIBC_HAS_LFS__ && (!defined __NR_fadvise64_64 || __WORDSIZE == 64)
strong_alias(posix_fadvise,posix_fadvise64)
# endif
#endif