blob: 13ababcfd9c785442a43c16271ae63a6791469b6 [file] [log] [blame]
/*
* sys/sysconf.h
*
* sysconf() macros and demultiplex
* This file is included in <unistd.h>
*
* 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 <unistd.h>
#endif
#include <errno.h>
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 */