aboutsummaryrefslogtreecommitdiff
path: root/dep/CascLib/src/CascPort.h
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2019-08-10 19:01:24 +0200
committerShauren <shauren.trinity@gmail.com>2019-08-10 19:01:24 +0200
commitcd720efbfa60f434f420ab66e220eca742c48e45 (patch)
tree3c960ac5249d0711b71fbfdc62f6c0b665ed85ee /dep/CascLib/src/CascPort.h
parent0d6320dfd3932865edb69c8528327b767bd476ef (diff)
Dep/CascLib: Update to ladislav-zezula/CascLib@b91f87c770c78340dcd96df970e55b5c0469e884
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__