1 /* Emulate getpagesize on systems that lack it. 2 Copyright (C) 1986, 1992, 1995, 2001-2023 Free Software Foundation, 3 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 (at 10 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 <https://www.gnu.org/licenses/>. */ 19 20 #ifndef HAVE_GETPAGESIZE 21 22 # include <unistd.h> 23 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 */ 47 48 #endif /* no HAVE_GETPAGESIZE */