1/* Emulation of getpagesize() for systems that need it.
2   Copyright (C) 1991 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., 675 Mass Ave, Cambridge, MA 02139, USA.  */
17
18#if defined (HAVE_UNISTD_H)
19#  include <unistd.h>
20#  if defined (_SC_PAGESIZE)
21#    define getpagesize() sysconf(_SC_PAGESIZE)
22#  else
23#    if defined (_SC_PAGE_SIZE)
24#      define getpagesize() sysconf(_SC_PAGE_SIZE)
25#    endif /* _SC_PAGE_SIZE */
26#  endif /* _SC_PAGESIZE */
27#endif
28
29#if !defined (getpagesize)
30#  ifdef HAVE_SYS_PARAM_H
31#    include <sys/param.h>
32#  endif
33#  if defined (PAGESIZE)
34#     define getpagesize() PAGESIZE
35#  else /* !PAGESIZE */
36#    if defined (EXEC_PAGESIZE)
37#      define getpagesize() EXEC_PAGESIZE
38#    else /* !EXEC_PAGESIZE */
39#      if defined (NBPG)
40#        if !defined (CLSIZE)
41#          define CLSIZE 1
42#        endif /* !CLSIZE */
43#        define getpagesize() (NBPG * CLSIZE)
44#      else /* !NBPG */
45#        if defined (NBPC)
46#          define getpagesize() NBPC
47#        endif /* NBPC */
48#      endif /* !NBPG */
49#    endif /* !EXEC_PAGESIZE */
50#  endif /* !PAGESIZE */
51#endif /* !getpagesize */
52
53#if !defined (getpagesize)
54#  define getpagesize() 4096  /* Just punt and use reasonable value */
55#endif
56