diff --git a/src/shims/hw_config.h b/src/shims/hw_config.h index 8ab79f3ed..5ed1739eb 100644 --- a/src/shims/hw_config.h +++ b/src/shims/hw_config.h @@ -187,12 +187,16 @@ _dispatch_hw_get_config(_dispatch_hw_config_t c) name = "hw.activecpu"; break; } #elif defined(__FreeBSD__) - (void)c; name = "kern.smp.cpus"; + (void)c; name = "kern.smp.cpus"; +#elif defined(__OpenBSD__) + (void)c; #endif if (name) { size_t valsz = sizeof(val); +#if !defined(__OpenBSD__) r = sysctlbyname(name, &val, &valsz, NULL, 0); (void)dispatch_assume_zero(r); +#endif dispatch_assert(valsz == sizeof(uint32_t)); } else { #if HAVE_SYSCONF && defined(_SC_NPROCESSORS_ONLN) diff --git a/src/transform.c b/src/transform.c index b1b84aafd..6e65567ad 100644 --- a/src/transform.c +++ b/src/transform.c @@ -26,7 +26,7 @@ #include #define OSLittleEndian __LITTLE_ENDIAN #define OSBigEndian __BIG_ENDIAN -#elif defined(__FreeBSD__) +#elif defined(__FreeBSD__) || defined(__OpenBSD__) #include #define OSLittleEndian _LITTLE_ENDIAN #define OSBigEndian _BIG_ENDIAN @@ -35,7 +35,7 @@ #define OSBigEndian 4321 #endif -#if defined(__linux__) || defined(__FreeBSD__) +#if defined(__linux__) || defined(__FreeBSD__) || defined(__OpenBSD__) #define OSSwapLittleToHostInt16 le16toh #define OSSwapBigToHostInt16 be16toh #define OSSwapHostToLittleInt16 htole16 diff --git a/tests/dispatch_apply.c b/tests/dispatch_apply.c index 86b4bd497..fa7fab53f 100644 --- a/tests/dispatch_apply.c +++ b/tests/dispatch_apply.c @@ -80,7 +80,7 @@ static void busythread(void *ignored) static void test_apply_contended(dispatch_queue_t dq) { uint32_t activecpu; -#ifdef __linux__ +#if defined(__linux__) || defined(__OpenBSD__) activecpu = (uint32_t)sysconf(_SC_NPROCESSORS_ONLN); #elif defined(_WIN32) SYSTEM_INFO si; diff --git a/tests/dispatch_io_net.c b/tests/dispatch_io_net.c index 1e722a840..560c93262 100644 --- a/tests/dispatch_io_net.c +++ b/tests/dispatch_io_net.c @@ -55,7 +55,7 @@ extern char **environ; #endif #endif -#if defined(__linux__) || defined(__FreeBSD__) || defined(_WIN32) +#if defined(__linux__) || defined(__FreeBSD__) || defined(_WIN32) || defined(__OpenBSD__) #define _NSGetExecutablePath(ef,bs) (*(bs)=(size_t)snprintf(ef,*(bs),"%s",argv[0]),0) #endif diff --git a/tests/dispatch_test.h b/tests/dispatch_test.h index 9de95b3c2..a74da2190 100644 --- a/tests/dispatch_test.h +++ b/tests/dispatch_test.h @@ -21,7 +21,7 @@ #include #include -#if defined(__linux__) || defined(__FreeBSD__) +#if defined(__linux__) || defined(__FreeBSD__) || defined(__OpenBSD__) #include #elif defined(_WIN32) #include