diff --git a/dev/ncpu/ncpu.c b/dev/ncpu/ncpu.c index cdc91eb33..e96961c09 100644 --- a/dev/ncpu/ncpu.c +++ b/dev/ncpu/ncpu.c @@ -1,4 +1,5 @@ #define _GNU_SOURCE +#include #include #include #include @@ -11,6 +12,22 @@ static char prog_full_path[PATH_MAX]; +long sysconf(int name) +{ + if (name == _SC_NPROCESSORS_ONLN || + name == _SC_NPROCESSORS_CONF) { + const char *ncpu = getenv("NCPU"); + int n; + + n = ncpu ? atoi(ncpu) : CPU_SETSIZE; + if (n < 0 || n > CPU_SETSIZE) + n = CPU_SETSIZE; + return n; + } + errno = EINVAL; + return -1; +} + /* return a cpu_set having the first $NCPU set */ int sched_getaffinity(pid_t pid, size_t cpusetsize, cpu_set_t *mask) {