diff options
author | Ulrich Drepper <drepper@redhat.com> | 2010-03-27 06:19:50 -0700 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2010-03-27 06:19:50 -0700 |
commit | 8f4a5048eea6536ee85c0f2670adbb97d71e427d (patch) | |
tree | 1262cfcfca944bd0301fd264b036abde505036b8 /sysdeps | |
parent | 0a164fe03ee79d93e5dd2b1e1917e4ff5d580e1f (diff) | |
download | glibc-8f4a5048eea6536ee85c0f2670adbb97d71e427d.tar.gz glibc-8f4a5048eea6536ee85c0f2670adbb97d71e427d.tar.xz glibc-8f4a5048eea6536ee85c0f2670adbb97d71e427d.zip |
Optimize __getpagesize a bit.
Diffstat (limited to 'sysdeps')
-rw-r--r-- | sysdeps/unix/sysv/linux/getpagesize.c | 27 |
1 files changed, 17 insertions, 10 deletions
diff --git a/sysdeps/unix/sysv/linux/getpagesize.c b/sysdeps/unix/sysv/linux/getpagesize.c index 6d03b3bbf2..0866079511 100644 --- a/sysdeps/unix/sysv/linux/getpagesize.c +++ b/sysdeps/unix/sysv/linux/getpagesize.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991,1992,1995-1997,2000,2002,2004 +/* Copyright (C) 1991,1992,1995-1997,2000,2002,2004,2010 Free Software Foundation, Inc. This file is part of the GNU C Library. @@ -17,30 +17,37 @@ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ +#include <assert.h> #include <unistd.h> #include <sys/param.h> #include <ldsodefs.h> +#include <kernel-features.h> /* Return the system page size. */ int __getpagesize () { +#ifdef __ASSUME_AT_PAGESIZE + assert (GLRO(dl_pagesize) != 0); + return GLRO(dl_pagesize); +#else if (GLRO(dl_pagesize) != 0) return GLRO(dl_pagesize); -#ifdef EXEC_PAGESIZE +# ifdef EXEC_PAGESIZE return EXEC_PAGESIZE; -#else /* No EXEC_PAGESIZE. */ -#ifdef NBPG -#ifndef CLSIZE -#define CLSIZE 1 -#endif /* No CLSIZE. */ +# else /* No EXEC_PAGESIZE. */ +# ifdef NBPG +# ifndef CLSIZE +# define CLSIZE 1 +# endif /* No CLSIZE. */ return NBPG * CLSIZE; -#else /* No NBPG. */ +# else /* No NBPG. */ return NBPC; -#endif /* NBPG. */ -#endif /* EXEC_PAGESIZE. */ +# endif /* NBPG. */ +# endif /* EXEC_PAGESIZE. */ +#endif } libc_hidden_def (__getpagesize) weak_alias (__getpagesize, getpagesize) |