From e1f0882b43c0fe44185c3c3c95de4e6f873b1efa Mon Sep 17 00:00:00 2001 From: Peter Kjellerstedt Date: Wed, 19 Jan 2005 07:48:00 +0000 Subject: Make it compile for architectures which have __UCLIBC_HAS_LFS__ defined, but neither __NR_fadvise64 nor __NR_fadvise64_64. --- libc/sysdeps/linux/common/posix_fadvise64.c | 25 ++++++++++++++++++------- 1 file changed, 18 insertions(+), 7 deletions(-) (limited to 'libc/sysdeps/linux/common/posix_fadvise64.c') diff --git a/libc/sysdeps/linux/common/posix_fadvise64.c b/libc/sysdeps/linux/common/posix_fadvise64.c index 93d56d6cb..a5dbe8de2 100644 --- a/libc/sysdeps/linux/common/posix_fadvise64.c +++ b/libc/sysdeps/linux/common/posix_fadvise64.c @@ -1,5 +1,5 @@ /* vi: set sw=4 ts=4: */ -/* +/* * posix_fadvise64() for uClibc * http://www.opengroup.org/onlinepubs/009695399/functions/posix_fadvise.html * @@ -17,12 +17,13 @@ #include #include -#if defined __UCLIBC_HAS_LFS__ && defined __NR_fadvise64_64 +#ifdef __UCLIBC_HAS_LFS__ +#ifdef __NR_fadvise64_64 #define __NR___syscall_fadvise64_64 __NR_fadvise64_64 /* 64 bit implementation is cake ... or more like pie ... */ #if __WORDSIZE == 64 -_syscall4(int, __syscall_fadvise64_64, int, fd, __off64_t, offset, +_syscall4(int, __syscall_fadvise64_64, int, fd, __off64_t, offset, __off64_t, len, int, advice); int __libc_posix_fadvise64(int fd, __off64_t offset, __off64_t len, int advice) { @@ -34,9 +35,9 @@ weak_alias(__libc_posix_fadvise64, posix_fadvise64); #elif __WORDSIZE == 32 #ifdef _syscall6 /* workaround until everyone has _syscall6() */ -_syscall6(int, __syscall_fadvise64_64, int, fd, - unsigned long, high_offset, unsigned long, low_offset, - unsigned long, high_len, unsigned long, low_len, +_syscall6(int, __syscall_fadvise64_64, int, fd, + unsigned long, high_offset, unsigned long, low_offset, + unsigned long, high_len, unsigned long, low_len, int, advice); int __libc_posix_fadvise64(int fd, __off64_t offset, __off64_t len, int advice) { @@ -54,4 +55,14 @@ weak_alias(__libc_posix_fadvise64, posix_fadvise64); #error your machine is neither 32 bit or 64 bit ... it must be magical #endif -#endif +#elif !defined __NR_fadvise64 +/* This is declared as a weak alias in posix_fadvice.c if __NR_fadvise64 + * is defined. + */ +int posix_fadvise64(int fd, __off64_t offset, __off64_t len, int advice) +{ + __set_errno(ENOSYS); + return -1; +} +#endif /* __NR_fadvise64_64 */ +#endif /* __UCLIBC_HAS_LFS__ */ -- cgit v1.2.3