diff options
author | Shauren <shauren.trinity@gmail.com> | 2019-08-10 19:01:24 +0200 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2019-08-10 19:01:24 +0200 |
commit | cd720efbfa60f434f420ab66e220eca742c48e45 (patch) | |
tree | 3c960ac5249d0711b71fbfdc62f6c0b665ed85ee /dep/CascLib/src/CascPort.h | |
parent | 0d6320dfd3932865edb69c8528327b767bd476ef (diff) |
Dep/CascLib: Update to ladislav-zezula/CascLib@b91f87c770c78340dcd96df970e55b5c0469e884
Diffstat (limited to 'dep/CascLib/src/CascPort.h')
-rw-r--r-- | dep/CascLib/src/CascPort.h | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/dep/CascLib/src/CascPort.h b/dep/CascLib/src/CascPort.h index 8172a5dde35..21cd991a09c 100644 --- a/dep/CascLib/src/CascPort.h +++ b/dep/CascLib/src/CascPort.h @@ -87,6 +87,7 @@ #include <errno.h> #include <stddef.h> #include <string.h> + #include <ctype.h> #include <cassert> // Support for PowerPC on Max OS X @@ -161,6 +162,8 @@ typedef int LONG; typedef unsigned int DWORD; typedef long long LONGLONG; + typedef signed long long LONGLONG; + typedef signed long long *PLONGLONG; typedef unsigned long long ULONGLONG; typedef unsigned long long *PULONGLONG; typedef void * HANDLE; @@ -304,6 +307,27 @@ #endif //----------------------------------------------------------------------------- +// Interlocked operations + +inline DWORD CascInterlockedIncrement(PDWORD PtrValue) +{ +#ifdef PLATFORM_WINDOWS + return (DWORD)InterlockedIncrement((LONG *)(PtrValue)); +#else + return ++PtrValue[0]; +#endif +} + +inline DWORD CascInterlockedDecrement(PDWORD PtrValue) +{ +#ifdef PLATFORM_WINDOWS + return (DWORD)InterlockedIncrement((LONG *)(PtrValue)); +#else + return --PtrValue[0]; +#endif +} + +//----------------------------------------------------------------------------- // Forbidden functions, do not use #ifdef __CASCLIB_SELF__ |