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