/* * sys/sysconf.h * * sysconf() macros and demultiplex * This file is included in * * Add things here as needed, we don't really want to add things wildly. * For things that require a lot of code, create an out-of-line function * and put it in a .c file in the sysconf directory. */ #ifndef _SYS_SYSCONF_H #define _SYS_SYSCONF_H #ifndef _UNISTD_H # include #endif #include enum sysconf { _SC_PAGESIZE = 1, }; __extern long sysconf(int); __must_inline long __sysconf_inline(int __val) { switch (__val) { case _SC_PAGESIZE: return getpagesize(); default: errno = EINVAL; return -1; } } #define sysconf(x) \ (__builtin_constant_p(x) ? __sysconf_inline(x) : sysconf(x)) #endif /* _SYS_SYSCONF_H */