diff --git a/README.md b/README.md index 8956316..8cb04e6 100755 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ [![Build status](https://ci.appveyor.com/api/projects/status/github/mutouyun/cpp-ipc?branch=master&svg=true)](https://ci.appveyor.com/project/mutouyun/cpp-ipc) [![Vcpkg package](https://img.shields.io/badge/Vcpkg-package-blueviolet)](https://github.com/microsoft/vcpkg/tree/master/ports/cpp-ipc) -## A high-performance inter-process communication library using shared memory on Linux/Windows. +## A high-performance inter-process communication library using shared memory on Linux/Windows/FreeBSD. * Compilers with C++17 support are recommended (msvc-2017/gcc-7/clang-4) * No other dependencies except STL. @@ -44,7 +44,7 @@ Performance data: [performance.xlsx](performance.xlsx) ------ -## 使用共享内存的跨平台(Linux/Windows,x86/x64/ARM)高性能IPC通讯库 +## 使用共享内存的跨平台(Linux/Windows/FreeBSD,x86/x64/ARM)高性能IPC通讯库 * 推荐支持C++17的编译器(msvc-2017/gcc-7/clang-4) * 除STL外,无其他依赖 diff --git a/src/libipc/platform/detail.h b/src/libipc/platform/detail.h index 4d6a27c..69e6b89 100755 --- a/src/libipc/platform/detail.h +++ b/src/libipc/platform/detail.h @@ -9,6 +9,8 @@ # define IPC_OS_WINDOWS_ #elif defined(__linux__) || defined(__linux) # define IPC_OS_LINUX_ +#elif defined(__FreeBSD__) +# define IPC_OS_FREEBSD_ #elif defined(__QNX__) # define IPC_OS_QNX_ #elif defined(__APPLE__) diff --git a/src/libipc/platform/platform.c b/src/libipc/platform/platform.c index 49cc977..d670e70 100644 --- a/src/libipc/platform/platform.c +++ b/src/libipc/platform/platform.c @@ -7,7 +7,7 @@ #include "libipc/platform/linux/a0/strconv.c" #include "libipc/platform/linux/a0/tid.c" #include "libipc/platform/linux/a0/time.c" -#elif defined(IPC_OS_QNX_) +#elif defined(IPC_OS_QNX_) || defined(IPC_OS_FREEBSD_) #else/*IPC_OS*/ # error "Unsupported platform." #endif diff --git a/src/libipc/platform/platform.cpp b/src/libipc/platform/platform.cpp index b77cbc9..f00113b 100644 --- a/src/libipc/platform/platform.cpp +++ b/src/libipc/platform/platform.cpp @@ -2,7 +2,7 @@ #include "libipc/platform/detail.h" #if defined(IPC_OS_WINDOWS_) #include "libipc/platform/win/shm_win.cpp" -#elif defined(IPC_OS_LINUX_) || defined(IPC_OS_QNX_) +#elif defined(IPC_OS_LINUX_) || defined(IPC_OS_QNX_) || defined(IPC_OS_FREEBSD_) #include "libipc/platform/posix/shm_posix.cpp" #else/*IPC_OS*/ # error "Unsupported platform." diff --git a/src/libipc/sync/condition.cpp b/src/libipc/sync/condition.cpp index e64e688..695f9a4 100644 --- a/src/libipc/sync/condition.cpp +++ b/src/libipc/sync/condition.cpp @@ -9,7 +9,7 @@ #include "libipc/platform/win/condition.h" #elif defined(IPC_OS_LINUX_) #include "libipc/platform/linux/condition.h" -#elif defined(IPC_OS_QNX_) +#elif defined(IPC_OS_QNX_) || defined(IPC_OS_FREEBSD_) #include "libipc/platform/posix/condition.h" #else/*IPC_OS*/ # error "Unsupported platform." diff --git a/src/libipc/sync/mutex.cpp b/src/libipc/sync/mutex.cpp index c9c59f7..104c4fc 100644 --- a/src/libipc/sync/mutex.cpp +++ b/src/libipc/sync/mutex.cpp @@ -9,7 +9,7 @@ #include "libipc/platform/win/mutex.h" #elif defined(IPC_OS_LINUX_) #include "libipc/platform/linux/mutex.h" -#elif defined(IPC_OS_QNX_) +#elif defined(IPC_OS_QNX_) || defined(IPC_OS_FREEBSD_) #include "libipc/platform/posix/mutex.h" #else/*IPC_OS*/ # error "Unsupported platform." diff --git a/src/libipc/sync/semaphore.cpp b/src/libipc/sync/semaphore.cpp index ccb13c4..720ef07 100644 --- a/src/libipc/sync/semaphore.cpp +++ b/src/libipc/sync/semaphore.cpp @@ -7,7 +7,7 @@ #include "libipc/platform/detail.h" #if defined(IPC_OS_WINDOWS_) #include "libipc/platform/win/semaphore.h" -#elif defined(IPC_OS_LINUX_) || defined(IPC_OS_QNX_) +#elif defined(IPC_OS_LINUX_) || defined(IPC_OS_QNX_) || defined(IPC_OS_FREEBSD_) #include "libipc/platform/posix/semaphore_impl.h" #else/*IPC_OS*/ # error "Unsupported platform." diff --git a/src/libipc/sync/waiter.cpp b/src/libipc/sync/waiter.cpp index 3a04abf..78cdee1 100644 --- a/src/libipc/sync/waiter.cpp +++ b/src/libipc/sync/waiter.cpp @@ -5,7 +5,7 @@ #include "libipc/platform/win/mutex.h" #elif defined(IPC_OS_LINUX_) #include "libipc/platform/linux/mutex.h" -#elif defined(IPC_OS_QNX_) +#elif defined(IPC_OS_QNX_) || defined(IPC_OS_FREEBSD_) #include "libipc/platform/posix/mutex.h" #else/*IPC_OS*/ # error "Unsupported platform."