diff options
author | Ryo Nakamura <upa@haeena.net> | 2024-01-21 04:50:34 +0900 |
---|---|---|
committer | Ryo Nakamura <upa@haeena.net> | 2024-01-21 04:50:34 +0900 |
commit | 7ab5cc3ce998351ae63fd5d48e64d5f3573b1488 (patch) | |
tree | 89eaa80fa5375edd073ffe8a4c6b211e6dd1c593 | |
parent | 60977a8e7ab66fe6fd990c0ef780d651fee3172c (diff) |
make it buildable at FreeBSD
-rw-r--r-- | CMakeLists.txt | 2 | ||||
-rw-r--r-- | src/fileops.c | 2 | ||||
-rw-r--r-- | src/platform.c | 15 |
3 files changed, 17 insertions, 2 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index a967693..a2f9533 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -177,7 +177,7 @@ set(CPACK_PACKAGE_DESCRIPTION execute_process(COMMAND uname -m OUTPUT_VARIABLE ARCH OUTPUT_STRIP_TRAILING_WHITESPACE) -if(UNIX AND NOT APPLE) # on linux +if(CMAKE_HOST_SYSTEM_NAME STREQUAL Linux) execute_process(COMMAND bash "-c" "cat /etc/os-release|grep '^ID='|cut -d '=' -f 2|tr -d '\"'" OUTPUT_VARIABLE DIST_NAME OUTPUT_STRIP_TRAILING_WHITESPACE) diff --git a/src/fileops.c b/src/fileops.c index 6f55ca9..ac85bf8 100644 --- a/src/fileops.c +++ b/src/fileops.c @@ -329,7 +329,7 @@ int mscp_glob(const char *pattern, int flags, glob_t *pglob, sftp_session sftp) #else flags |= GLOB_ALTDIRFUNC; set_tls_sftp_session(sftp); -#ifdef __APPLE__ +#if defined(__APPLE__) || defined(__FreeBSD__) pglob->gl_opendir = (void *(*)(const char *))mscp_opendir_wrapped; pglob->gl_readdir = (struct dirent *(*)(void *))mscp_readdir; pglob->gl_closedir = (void (*)(void *))mscp_closedir; diff --git a/src/platform.c b/src/platform.c index 6eac132..a2dfb86 100644 --- a/src/platform.c +++ b/src/platform.c @@ -7,6 +7,10 @@ #define _GNU_SOURCE #include <sched.h> #include <stdlib.h> +#elif __FreeBSD__ +#include <stdlib.h> +#include <unistd.h> +#include <pthread_np.h> #else #error unsupported platform #endif @@ -78,6 +82,17 @@ int nr_cpus() return CPU_COUNT(&cpu_set); return -1; } +#endif + +#ifdef __FreeBSD__ +int nr_cpus() +{ + long nr_cpus = sysconf(_SC_NPROCESSORS_ONLN); + return nr_cpus; +} +#endif + +#if defined(linux) || defined(__FreeBSD__) int set_thread_affinity(pthread_t tid, int core) { |