1/* Emulation of getpagesize() for systems that need it.
2   Copyright (C) 1991-2003 Free Software Foundation, Inc.
3
4This program is free software; you can redistribute it and/or modify
5it under the terms of the GNU General Public License as published by
6the Free Software Foundation; either version 2 of the License, or
7(at your option) any later version.
8
9This program is distributed in the hope that it will be useful,
10but WITHOUT ANY WARRANTY; without even the implied warranty of
11MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12GNU General Public License for more details.
13
14You should have received a copy of the GNU General Public License
15along with this program; if not, write to the Free Software
16Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111 USA.  */
17
18#if defined (HAVE_UNISTD_H)
19#  ifdef _MINIX
20#    include <sys/types.h>
21#  endif
22#  include <unistd.h>
23#  if defined (_SC_PAGESIZE)
24#    define getpagesize() sysconf(_SC_PAGESIZE)
25#  else
26#    if defined (_SC_PAGE_SIZE)
27#      define getpagesize() sysconf(_SC_PAGE_SIZE)
28#    endif /* _SC_PAGE_SIZE */
29#  endif /* _SC_PAGESIZE */
30#endif
31
32#if !defined (getpagesize)
33#  ifndef _MINIX
34#    include <sys/param.h>
35#  endif
36#  if defined (PAGESIZE)
37#     define getpagesize() PAGESIZE
38#  else /* !PAGESIZE */
39#    if defined (EXEC_PAGESIZE)
40#      define getpagesize() EXEC_PAGESIZE
41#    else /* !EXEC_PAGESIZE */
42#      if defined (NBPG)
43#        if !defined (CLSIZE)
44#          define CLSIZE 1
45#        endif /* !CLSIZE */
46#        define getpagesize() (NBPG * CLSIZE)
47#      else /* !NBPG */
48#        if defined (NBPC)
49#          define getpagesize() NBPC
50#        endif /* NBPC */
51#      endif /* !NBPG */
52#    endif /* !EXEC_PAGESIZE */
53#  endif /* !PAGESIZE */
54#endif /* !getpagesize */
55
56#if !defined (getpagesize)
57#  define getpagesize() 4096  /* Just punt and use reasonable value */
58#endif
59