diff options
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__ |
