Merge from emacs--rel--22
[bpt/emacs.git] / src / getpagesize.h
1 /* Emulate getpagesize on systems that lack it.
2 Copyright (C) 1986, 1992, 1995, 2001, 2002, 2003, 2004,
3 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
4
5 This file is part of GNU Emacs.
6
7 GNU Emacs is free software: you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by
9 the Free Software Foundation, either version 3 of the License, or
10 (at your option) any later version.
11
12 GNU Emacs is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details.
16
17 You should have received a copy of the GNU General Public License
18 along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
19
20 #ifndef HAVE_GETPAGESIZE
21
22 # ifdef VMS
23 # define getpagesize() 512
24 # endif
25
26 # ifdef HAVE_UNISTD_H
27 # include <unistd.h>
28 # endif
29
30 # ifdef _SC_PAGESIZE
31 # define getpagesize() sysconf(_SC_PAGESIZE)
32 # else /* no _SC_PAGESIZE */
33 # ifdef HAVE_SYS_PARAM_H
34 # include <sys/param.h>
35 # ifdef EXEC_PAGESIZE
36 # define getpagesize() EXEC_PAGESIZE
37 # else /* no EXEC_PAGESIZE */
38 # ifdef NBPG
39 # define getpagesize() NBPG * CLSIZE
40 # ifndef CLSIZE
41 # define CLSIZE 1
42 # endif /* no CLSIZE */
43 # else /* no NBPG */
44 # ifdef PAGESIZE
45 # define getpagesize() PAGESIZE
46 # endif /* PAGESIZE */
47 # endif /* no NBPG */
48 # endif /* no EXEC_PAGESIZE */
49 # else /* no HAVE_SYS_PARAM_H */
50 # define getpagesize() 8192 /* punt totally */
51 # endif /* no HAVE_SYS_PARAM_H */
52 # endif /* no _SC_PAGESIZE */
53
54 #endif /* no HAVE_GETPAGESIZE */
55
56 /* arch-tag: ff6206e3-97e2-4763-923a-e84bf28eabbc
57 (do not change this comment) */