153475Sobrien/* Emulate getpagesize on systems that lack it.  */
253451Speter
3126435Sache/* $FreeBSD$ */
4126435Sache
553451Speter#ifndef HAVE_GETPAGESIZE
653451Speter
7131557Stjr#if !defined getpagesize && defined __BEOS__
8131557Stjr# include <OS.h>
9131557Stjr# define getpagesize() B_PAGE_SIZE
10131557Stjr#endif
11131557Stjr
12126435Sache#ifdef HAVE_UNISTD_H
13126435Sache# include <unistd.h>
1456918Sru#endif
1553451Speter
16126435Sache#if !defined getpagesize && defined _SC_PAGESIZE
17126435Sache# if !(defined VMS && __VMS_VER < 70000000)
18126435Sache#  define getpagesize() sysconf (_SC_PAGESIZE)
19126435Sache# endif
2056918Sru#endif
2153451Speter
22126435Sache#if !defined getpagesize && defined VMS
23126435Sache# ifdef __ALPHA
24126435Sache#  define getpagesize() 8192
25126435Sache# else
26126435Sache#  define getpagesize() 512
27126435Sache# endif
28126435Sache#endif
2953451Speter
30126435Sache#ifndef getpagesize
31126435Sache# include <sys/param.h>
32126435Sache# ifdef EXEC_PAGESIZE
33126435Sache#  define getpagesize() EXEC_PAGESIZE
34126435Sache# else
35126435Sache#  ifdef NBPG
36126435Sache#   ifndef CLSIZE
37126435Sache#    define CLSIZE 1
38126435Sache#   endif
39126435Sache#   define getpagesize() (NBPG * CLSIZE)
40126435Sache#  else
41126435Sache#   ifdef NBPC
42126435Sache#    define getpagesize() NBPC
43126435Sache#   endif
44126435Sache#  endif
45126435Sache# endif
46126435Sache#endif
4756918Sru
4856918Sru#endif /* not HAVE_GETPAGESIZE */
49