diff options
author | Emery Hemingway <githubjunk@spam.works> | 2017-03-31 16:13:06 -0500 |
---|---|---|
committer | Andreas Rumpf <rumpf_a@web.de> | 2017-03-31 23:13:06 +0200 |
commit | 7e351fc7fa96b4d560c5a51118bab22abb590585 (patch) | |
tree | e0f5dd4deb394e86d95244317b0a328bb970842d /lib/pure/concurrency | |
parent | 57246cbcec2f747d5af33ebf4c8c0e0a531eba02 (diff) | |
download | Nim-7e351fc7fa96b4d560c5a51118bab22abb590585.tar.gz |
support for the Genode OS framework (#5560)
Diffstat (limited to 'lib/pure/concurrency')
-rw-r--r-- | lib/pure/concurrency/cpuinfo.nim | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/lib/pure/concurrency/cpuinfo.nim b/lib/pure/concurrency/cpuinfo.nim index 8c87c77df..c3390573a 100644 --- a/lib/pure/concurrency/cpuinfo.nim +++ b/lib/pure/concurrency/cpuinfo.nim @@ -37,6 +37,10 @@ when defined(macosx) or defined(bsd): a: var csize, b: pointer, c: int): cint {. importc: "sysctl", nodecl.} +when defined(genode): + proc affinitySpaceTotal(): cuint {. + importcpp: "genodeEnv->cpu().affinity_space().total()".} + proc countProcessors*(): int {.rtl, extern: "ncpi$1".} = ## returns the numer of the processors/cores the machine has. ## Returns 0 if it cannot be detected. @@ -61,7 +65,8 @@ proc countProcessors*(): int {.rtl, extern: "ncpi$1".} = elif defined(irix): var SC_NPROC_ONLN {.importc: "_SC_NPROC_ONLN", header: "<unistd.h>".}: cint result = sysconf(SC_NPROC_ONLN) + elif defined(genode): + result = affinitySpaceTotal().int else: result = sysconf(SC_NPROCESSORS_ONLN) if result <= 0: result = 1 - |