svn commit: trunk/uClibc/libc/sysdeps/linux/common
Peter S. Mazinger
ps.m at gmx.net
Thu Dec 1 09:53:48 UTC 2005
On Wed, 30 Nov 2005 vapier at uclibc.org wrote:
> Author: vapier
> Date: 2005-11-30 23:41:02 -0800 (Wed, 30 Nov 2005)
> New Revision: 12606
>
> Log:
> touchup how we declare the posix_fadvise functions and fix the case where posix_fadvise kernel call exists but not posix_fadvise64
>
> Modified:
> trunk/uClibc/libc/sysdeps/linux/common/posix_fadvise.c
> trunk/uClibc/libc/sysdeps/linux/common/posix_fadvise64.c
>
>
> Changeset:
> Modified: trunk/uClibc/libc/sysdeps/linux/common/posix_fadvise.c
> ===================================================================
> --- trunk/uClibc/libc/sysdeps/linux/common/posix_fadvise.c 2005-12-01 07:40:02 UTC (rev 12605)
> +++ trunk/uClibc/libc/sysdeps/linux/common/posix_fadvise.c 2005-12-01 07:41:02 UTC (rev 12606)
> @@ -8,21 +8,20 @@
> * GNU Library General Public License (LGPL) version 2 or later.
> */
>
> +/* need to hide the posix_fadvise64 prototype or the weak_alias()
> + * will fail when __NR_fadvise64_64 doesnt exist */
> +#define posix_fadvise64 __hide_posix_fadvise64
> #include "syscalls.h"
> #include <fcntl.h>
> +#undef posix_fadvise64
can't follow here, #define and #undef posix_fadvise64 ? is it so, to
"allow" fcntl.h to see it ?
>
> #ifdef __NR_fadvise64
> -#define __NR___syscall_fadvise64 __NR_fadvise64
> -_syscall4(int, __syscall_fadvise64, int, fd, off_t, offset,
> +#define __NR_posix_fadvise __NR_fadvise64
> +_syscall4(int, posix_fadvise, int, fd, off_t, offset,
> off_t, len, int, advice);
> -int __libc_posix_fadvise(int fd, off_t offset, off_t len, int advice)
> -{
> - return (__syscall_fadvise64(fd, offset, len, advice));
> -}
> -weak_alias(__libc_posix_fadvise, posix_fadvise);
>
> #if defined __UCLIBC_HAS_LFS__ && !defined __NR_fadvise64_64
> -weak_alias(__libc_posix_fadvise, posix_fadvise64);
> +weak_alias(posix_fadvise, posix_fadvise64);
> #endif
won't you need __libc_posix_fadvise in new libpthread ?
>
> #else
>
> Modified: trunk/uClibc/libc/sysdeps/linux/common/posix_fadvise64.c
> ===================================================================
> --- trunk/uClibc/libc/sysdeps/linux/common/posix_fadvise64.c 2005-12-01 07:40:02 UTC (rev 12605)
> +++ trunk/uClibc/libc/sysdeps/linux/common/posix_fadvise64.c 2005-12-01 07:41:02 UTC (rev 12606)
> @@ -19,34 +19,30 @@
>
> #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,
> +
> +#define __NR_posix_fadvise64 __NR_fadvise64_64
> +_syscall4(int, posix_fadvise64, int, fd, __off64_t, offset,
> __off64_t, len, int, advice);
> -int __libc_posix_fadvise64(int fd, __off64_t offset, __off64_t len, int advice)
> -{
> - return (__syscall_fadvise64_64(fd, offset, len, advice));
> -}
> -weak_alias(__libc_posix_fadvise64, posix_fadvise64);
>
> /* 32 bit implementation is kind of a pita */
> #elif __WORDSIZE == 32
>
> #ifdef _syscall6 /* workaround until everyone has _syscall6() */
> +#define __NR___syscall_fadvise64_64 __NR_fadvise64_64
> _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);
why not static [inline] _syscall6 (...) ?
> -int __libc_posix_fadvise64(int fd, __off64_t offset, __off64_t len, int advice)
> +int posix_fadvise64(int fd, __off64_t offset, __off64_t len, int advice)
> {
> return (__syscall_fadvise64_64(fd,
this is the only user it seems, so static should be ok
Peter
> __LONG_LONG_PAIR(offset >> 32, offset & 0xffffffff),
> __LONG_LONG_PAIR(len >> 32, len & 0xffffffff),
> advice));
> }
> -weak_alias(__libc_posix_fadvise64, posix_fadvise64);
> #else
> #warning _syscall6 has not been defined for your machine :(
> #endif /* _syscall6 */
> @@ -56,7 +52,7 @@
> #endif
>
> #elif !defined __NR_fadvise64
> -/* This is declared as a weak alias in posix_fadvice.c if __NR_fadvise64
> +/* This is declared as a weak alias in posix_fadvise.c if __NR_fadvise64
> * is defined.
> */
> int posix_fadvise64(int fd, __off64_t offset, __off64_t len, int advice)
>
> _______________________________________________
> uClibc-cvs mailing list
> uClibc-cvs at uclibc.org
> http://busybox.net/cgi-bin/mailman/listinfo/uclibc-cvs
>
>
--
Peter S. Mazinger <ps dot m at gmx dot net> ID: 0xA5F059F2
Key fingerprint = 92A4 31E1 56BC 3D5A 2D08 BB6E C389 975E A5F0 59F2
More information about the uClibc
mailing list