xref: /netbsd-src/external/bsd/libfido2/dist/openbsd-compat/bsd-getpagesize.c (revision ba9bdd8b2ff7fbfbaa959891964bd041b67e3bcb)
1*ba9bdd8bSchristos /* Placed in the public domain */
2*ba9bdd8bSchristos 
3*ba9bdd8bSchristos #include "openbsd-compat.h"
4*ba9bdd8bSchristos 
5*ba9bdd8bSchristos #if !defined(HAVE_GETPAGESIZE)
6*ba9bdd8bSchristos 
7*ba9bdd8bSchristos #ifdef HAVE_UNISTD_H
8*ba9bdd8bSchristos #include <unistd.h>
9*ba9bdd8bSchristos #endif
10*ba9bdd8bSchristos #include <limits.h>
11*ba9bdd8bSchristos 
12*ba9bdd8bSchristos int
getpagesize(void)13*ba9bdd8bSchristos getpagesize(void)
14*ba9bdd8bSchristos {
15*ba9bdd8bSchristos #if defined(HAVE_SYSCONF) && defined(_SC_PAGESIZE)
16*ba9bdd8bSchristos 	long r = sysconf(_SC_PAGESIZE);
17*ba9bdd8bSchristos 	if (r > 0 && r < INT_MAX)
18*ba9bdd8bSchristos 		return (int)r;
19*ba9bdd8bSchristos #endif
20*ba9bdd8bSchristos 	/*
21*ba9bdd8bSchristos 	 * This is at the lower end of common values and appropriate for
22*ba9bdd8bSchristos 	 * our current use of getpagesize() in recallocarray().
23*ba9bdd8bSchristos 	 */
24*ba9bdd8bSchristos 	return 4096;
25*ba9bdd8bSchristos }
26*ba9bdd8bSchristos 
27*ba9bdd8bSchristos #endif /* !defined(HAVE_GETPAGESIZE) */
28