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?r... ============================================================================== --- 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);