From 753e386f4f5e390f2a659900d82520bfb44de85d Mon Sep 17 00:00:00 2001 From: Thomas Zander Date: Fri, 3 Oct 2014 11:46:37 +0200 Subject: [PATCH] Provide embb_core_count_available() implementation for FreeBSD (this probably works on MacOS too, but not tested yet) While on it, fix error message. The missing include file is not the root cause of the problem. The missing implementation of embb_core_count_available() is. --- base_c/src/core_set.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/base_c/src/core_set.c b/base_c/src/core_set.c index d2e2e2e..81e419a 100644 --- a/base_c/src/core_set.c +++ b/base_c/src/core_set.c @@ -94,12 +94,22 @@ void embb_core_set_init(embb_core_set_t* core_set, int initializer) { #ifdef EMBB_HAS_HEADER_SYSINFO #include #endif +#ifdef __FreeBSD__ +#include +#include +#endif unsigned int embb_core_count_available() { #ifdef EMBB_HAS_HEADER_SYSINFO return get_nprocs(); +#elif defined __FreeBSD__ + const size_t bs = sizeof(unsigned int); + char buf[bs]; + size_t len = bs; + sysctlbyname("hw.ncpu", buf, &len, NULL, 0); + return *(unsigned int*)&buf; #else -#error "No header sysinfo available!" +#error "No implementation for embb_core_count_available()!" #endif } -- libgit2 0.26.0