summaryrefslogtreecommitdiffstats
path: root/lib/libc/gen/sysconf.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/libc/gen/sysconf.c')
-rw-r--r--lib/libc/gen/sysconf.c15
1 files changed, 14 insertions, 1 deletions
diff --git a/lib/libc/gen/sysconf.c b/lib/libc/gen/sysconf.c
index 27729a6..fc844cc 100644
--- a/lib/libc/gen/sysconf.c
+++ b/lib/libc/gen/sysconf.c
@@ -79,9 +79,11 @@ sysconf(name)
int mib[2], sverrno, value;
long defaultresult;
const char *path;
+ const char *sname;
len = sizeof(value);
defaultresult = -1;
+ sname = NULL;
switch (name) {
case _SC_ARG_MAX:
@@ -574,9 +576,20 @@ yesno: if (sysctl(mib, 2, &value, &len, NULL, 0) == -1)
mib[1] = HW_NCPU;
break;
+ case _SC_PHYS_PAGES:
+ sname = "hw.availpages";
+ break;
+
default:
errno = EINVAL;
return (-1);
}
- return (sysctl(mib, 2, &value, &len, NULL, 0) == -1 ? -1 : value);
+ if (sname == NULL) {
+ if (sysctl(mib, 2, &value, &len, NULL, 0) == -1)
+ value = -1;
+ } else {
+ if (sysctlbyname(sname, &value, &len, NULL, 0) == -1)
+ value = -1;
+ }
+ return (value);
}
OpenPOWER on IntegriCloud