Yet another round of fixing the Emacs manual
[emacs.git] / src / getpagesize.h
blob561014a9aa1770b7643a299692f4f15890e4fd76
1 /* Emulate getpagesize on systems that lack it.
2 Copyright (C) 1986, 1992, 1995, 2001-2018 Free Software Foundation,
3 Inc.
5 This file is part of GNU Emacs.
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 (at
10 your option) any later version.
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.
17 You should have received a copy of the GNU General Public License
18 along with GNU Emacs. If not, see <https://www.gnu.org/licenses/>. */
20 #ifndef HAVE_GETPAGESIZE
22 # include <unistd.h>
24 # ifdef _SC_PAGESIZE
25 # define getpagesize() sysconf (_SC_PAGESIZE)
26 # else /* no _SC_PAGESIZE */
27 # ifdef HAVE_SYS_PARAM_H
28 # include <sys/param.h>
29 # ifdef EXEC_PAGESIZE
30 # define getpagesize() EXEC_PAGESIZE
31 # else /* no EXEC_PAGESIZE */
32 # ifdef NBPG
33 # define getpagesize() NBPG * CLSIZE
34 # ifndef CLSIZE
35 # define CLSIZE 1
36 # endif /* no CLSIZE */
37 # else /* no NBPG */
38 # ifdef PAGESIZE
39 # define getpagesize() PAGESIZE
40 # endif /* PAGESIZE */
41 # endif /* no NBPG */
42 # endif /* no EXEC_PAGESIZE */
43 # else /* no HAVE_SYS_PARAM_H */
44 # define getpagesize() 8192 /* punt totally */
45 # endif /* no HAVE_SYS_PARAM_H */
46 # endif /* no _SC_PAGESIZE */
48 #endif /* no HAVE_GETPAGESIZE */