From 1c5718b3d78f8d0cb7a1d563be78c87c1ea47d21 Mon Sep 17 00:00:00 2001
From: Dmitriy Gerasimov <naeper@demlabs.net>
Date: Tue, 9 Feb 2021 16:36:01 +0700
Subject: [PATCH] [+] BSD variant of set/get cpu affinity calls

---
 dap-sdk/net/core/dap_events.c | 13 ++++++++++++-
 1 file changed, 12 insertions(+), 1 deletion(-)

diff --git a/dap-sdk/net/core/dap_events.c b/dap-sdk/net/core/dap_events.c
index c95918cd84..aea5f2b593 100644
--- a/dap-sdk/net/core/dap_events.c
+++ b/dap-sdk/net/core/dap_events.c
@@ -50,6 +50,13 @@
 #include <sys/timerfd.h>
 #endif
 
+#include <pthread.h>
+
+#ifdef DAP_OS_BSD
+#include <pthread_np.h>
+typedef cpuset_t cpu_set_t; // Adopt BSD CPU setstructure to POSIX variant
+#endif
+
 #if defined(DAP_OS_ANDROID)
 #define NO_POSIX_SHED
 #define NO_TIMER
@@ -62,7 +69,7 @@
 #include <mswsock.h>
 #include <ws2tcpip.h>
 #include <io.h>
-#include <pthread.h>
+
 #endif
 
 #include <utlist.h>
@@ -93,7 +100,11 @@ uint32_t dap_get_cpu_count( )
 #ifndef NO_POSIX_SHED
   cpu_set_t cs;
   CPU_ZERO( &cs );
+#if defined (DAP_OS_ANDROID) 
   sched_getaffinity( 0, sizeof(cs), &cs );
+#else
+  pthread_getaffinity_np(pthread_self(), sizeof(cs), &cs);
+#endif
 
   uint32_t count = 0;
   for ( int i = 0; i < 32; i++ ){
-- 
GitLab