* config/srclist.txt: Temporarily comment out mktime.c until glibc bug
[gnulib.git] / lib / getpagesize.h
index 4e513c3..b09b2c2 100644 (file)
@@ -1,35 +1,63 @@
-/* Emulate getpagesize on systems that lack it.  */
+/* Emulate getpagesize on systems that lack it.
+   Copyright (C) 1999, 2000, 2004, 2005 Free Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software
+   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+   USA.  */
 
 #ifndef HAVE_GETPAGESIZE
 
-#ifdef VMS
-#define getpagesize() 512
+#include <unistd.h>
+
+#if !defined getpagesize && defined _SC_PAGESIZE
+# if ! (defined __VMS && __VMS_VER < 70000000)
+#  define getpagesize() sysconf (_SC_PAGESIZE)
+# endif
 #endif
 
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
+#if !defined getpagesize && defined __VMS
+# ifdef __ALPHA
+#  define getpagesize() 8192
+# else
+#  define getpagesize() 512
+# endif
+#endif
+
+/* This is for BeOS.  */
+#if !defined getpagesize && HAVE_OS_H
+# include <OS.h>
+# if defined B_PAGE_SIZE
+#  define getpagesize() B_PAGE_SIZE
+# endif
 #endif
 
-#ifdef _SC_PAGESIZE
-#define getpagesize() sysconf(_SC_PAGESIZE)
-#else
-
-#include <sys/param.h>
-
-#ifdef EXEC_PAGESIZE
-#define getpagesize() EXEC_PAGESIZE
-#else
-#ifdef NBPG
-#define getpagesize() NBPG * CLSIZE
-#ifndef CLSIZE
-#define CLSIZE 1
-#endif /* no CLSIZE */
-#else /* no NBPG */
-#ifdef NBPC
-#define getpagesize() NBPC
-#endif /* NBPC */
-#endif /* no NBPG */
-#endif /* no EXEC_PAGESIZE */
-#endif /* no _SC_PAGESIZE */
+#if !defined getpagesize && HAVE_SYS_PARAM_H
+# include <sys/param.h>
+# ifdef EXEC_PAGESIZE
+#  define getpagesize() EXEC_PAGESIZE
+# else
+#  ifdef NBPG
+#   ifndef CLSIZE
+#    define CLSIZE 1
+#   endif
+#   define getpagesize() (NBPG * CLSIZE)
+#  else
+#   ifdef NBPC
+#    define getpagesize() NBPC
+#   endif
+#  endif
+# endif
+#endif
 
 #endif /* not HAVE_GETPAGESIZE */