aboutsummaryrefslogtreecommitdiff
path: root/dep/CascLib/src/CascPort.h
diff options
context:
space:
mode:
Diffstat (limited to 'dep/CascLib/src/CascPort.h')
-rw-r--r--dep/CascLib/src/CascPort.h24
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__