diff options
-rw-r--r-- | src/corelib/arch/nacl/qatomic_nacl.cpp | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/src/corelib/arch/nacl/qatomic_nacl.cpp b/src/corelib/arch/nacl/qatomic_nacl.cpp index 296fc66377..dbd0d4a94f 100644 --- a/src/corelib/arch/nacl/qatomic_nacl.cpp +++ b/src/corelib/arch/nacl/qatomic_nacl.cpp @@ -43,15 +43,27 @@ #include <QtCore/qatomic.h> -#include <atomic_ops.h> +//#include <atomic_ops.h> #include <stdio.h> +#include <pthread.h> + +typedef AtomicInt32 AtomicWord; +extern AtomicWord CompareAndSwap(volatile AtomicWord* ptr, + AtomicWord old_value, + AtomicWord new_value); +typedef AtomicInt32 AtomicWord; +extern AtomicWord CompareAndSwape(volatile AtomicWord* ptr, + AtomicWord old_value, + AtomicWord new_value); +extern AtomicWord AtomicExchange(volatile AtomicWord* ptr, AtomicWord new_value); +extern AtomicWord AtomicIncrement(volatile AtomicWord* ptr, AtomicWord increment); QT_BEGIN_NAMESPACE Q_CORE_EXPORT bool QBasicAtomicInt_testAndSetOrdered(volatile int *_q_value, int expectedValue, int newValue) { - return (CompareAndSwap(_q_value, expectedValue, newValue) == newValue); + return (CompareAndSwape(_q_value, expectedValue, newValue) == newValue); } Q_CORE_EXPORT @@ -71,7 +83,7 @@ bool QBasicAtomicPointer_testAndSetOrdered(void * volatile *_q_value, void *expectedValue, void *newValue) { - return (CompareAndSwap(reinterpret_cast<volatile AtomicWord*>(_q_value), + return (CompareAndSwape(reinterpret_cast<volatile AtomicWord*>(_q_value), reinterpret_cast<AtomicWord>(expectedValue), reinterpret_cast<AtomicWord>(newValue)) == reinterpret_cast<AtomicWord>(newValue)); @@ -93,6 +105,7 @@ void *QBasicAtomicPointer_fetchAndAddOrdered(void * volatile *_q_value, qptrdiff AtomicIncrement(reinterpret_cast<volatile AtomicWord*>(_q_value), *reinterpret_cast<AtomicWord *>(&valueToAdd)) ); + } QT_END_NAMESPACE |