Author: sginsberg
Date: Sat Oct 11 04:32:57 2008
New Revision: 36711
URL:
http://svn.reactos.org/svn/reactos?rev=36711&view=rev
Log:
- ARM build fix -- add a non-atomic (but otherwise correct) _InterlockedCompareExchange64
intrinsic required since the RTL changes in 36166
Modified:
trunk/reactos/include/psdk/intrin_arm.h
Modified: trunk/reactos/include/psdk/intrin_arm.h
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/include/psdk/intrin_arm.h?…
==============================================================================
--- trunk/reactos/include/psdk/intrin_arm.h [iso-8859-1] (original)
+++ trunk/reactos/include/psdk/intrin_arm.h [iso-8859-1] Sat Oct 11 04:32:57 2008
@@ -54,6 +54,17 @@
return a;
}
+static __inline__ __attribute__((always_inline)) long long
_InterlockedCompareExchange64(volatile long long * const dest, const long long exch, const
long long comp)
+{
+ //
+ // FIXME
+ //
+ long long result;
+ result = *dest;
+ if (*dest == comp) *dest = exch;
+ return result;
+}
+
static __inline__ __attribute__((always_inline)) void *
_InterlockedCompareExchangePointer(void * volatile * const Destination, void * const
Exchange, void * const Comperand)
{
return (void*)_InterlockedCompareExchange((volatile long* const)Destination, (const
long)Exchange, (const long)Comperand);