42 #ifndef QATOMIC_SYMBIAN_H
43 #define QATOMIC_SYMBIAN_H
54 #define Q_ATOMIC_INT_REFERENCE_COUNTING_IS_SOMETIMES_NATIVE
59 #define Q_ATOMIC_INT_TEST_AND_SET_IS_SOMETIMES_NATIVE
64 #define Q_ATOMIC_INT_FETCH_AND_STORE_IS_SOMETIMES_NATIVE
69 #define Q_ATOMIC_INT_FETCH_AND_ADD_IS_SOMETIMES_NATIVE
74 #define Q_ATOMIC_POINTER_TEST_AND_SET_IS_SOMETIMES_NATIVE
84 #define Q_ATOMIC_POINTER_FETCH_AND_STORE_IS_SOMETIMES_NATIVE
94 #define Q_ATOMIC_POINTER_FETCH_AND_ADD_IS_SOMETIMES_NATIVE
100 template <
typename T>
135 int original = User::LockedInc((TInt&)
_q_value);
136 return original != -1;
141 int original = User::LockedDec((TInt&)
_q_value);
142 return original != 1;
213 template <
typename T>
217 expectedValue, newValue);
220 template <
typename T>
224 expectedValue, newValue);
227 template <
typename T>
231 expectedValue, newValue);
234 template <
typename T>
238 expectedValue, newValue);
243 template <
typename T>
247 reinterpret_cast<void * volatile *>(&_q_value)
251 template <
typename T>
255 reinterpret_cast<void * volatile *>(&_q_value)
259 template <
typename T>
263 reinterpret_cast<void * volatile *>(&_q_value)
267 template <
typename T>
271 reinterpret_cast<void * volatile *>(&_q_value)
277 template <
typename T>
281 reinterpret_cast<void * volatile *>(&_q_value),
282 valueToAdd *
sizeof(T)));
285 template <
typename T>
289 reinterpret_cast<void * volatile *>(&_q_value),
290 valueToAdd *
sizeof(T)));
293 template <
typename T>
297 reinterpret_cast<void * volatile *>(&_q_value),
298 valueToAdd *
sizeof(T)));
301 template <
typename T>
305 reinterpret_cast<void * volatile *>(&_q_value),
306 valueToAdd *
sizeof(T)));
313 #endif // QATOMIC_SYMBIAN_H
int fetchAndStoreRelaxed(int newValue)
bool testAndSetRelease(int expectedValue, int newValue)
Q_CORE_EXPORT int QBasicAtomicInt_fetchAndAddRelease(volatile int *, int)
Q_CORE_EXPORT int QBasicAtomicInt_fetchAndStoreRelaxed(volatile int *, int)
Q_CORE_EXPORT int QBasicAtomicInt_fetchAndStoreOrdered(volatile int *, int)
Q_CORE_EXPORT void * QBasicAtomicPointer_fetchAndStoreRelease(void *volatile *, void *)
Q_CORE_EXPORT void * QBasicAtomicPointer_fetchAndStoreRelaxed(void *volatile *, void *)
Q_CORE_EXPORT bool QBasicAtomicPointer_testAndSetRelease(void *volatile *, void *, void *)
Q_CORE_EXPORT int QBasicAtomicInt_fetchAndAddRelaxed(volatile int *, int)
T * fetchAndAddAcquire(qptrdiff valueToAdd)
T * fetchAndAddOrdered(qptrdiff valueToAdd)
Q_CORE_EXPORT bool QBasicAtomicInt_testAndSetRelease(volatile int *, int, int)
int fetchAndAddRelaxed(int valueToAdd)
Q_CORE_EXPORT bool QBasicAtomicInt_testAndSetOrdered(volatile int *, int, int)
Q_CORE_EXPORT bool QBasicAtomicInt_testAndSetRelaxed(volatile int *, int, int)
Q_CORE_EXPORT int QBasicAtomicInt_fetchAndAddAcquire(volatile int *, int)
T * fetchAndStoreAcquire(T *newValue)
T * fetchAndAddRelease(qptrdiff valueToAdd)
Q_CORE_EXPORT int QBasicAtomicInt_fetchAndStoreAcquire(volatile int *, int)
Q_CORE_EXPORT void * QBasicAtomicPointer_fetchAndStoreOrdered(void *volatile *, void *)
int fetchAndAddAcquire(int valueToAdd)
static bool isReferenceCountingWaitFree()
T * fetchAndAddRelaxed(qptrdiff valueToAdd)
static bool isFetchAndAddNative()
bool testAndSetOrdered(T *expectedValue, T *newValue)
bool testAndSetAcquire(int expectedValue, int newValue)
static bool isFetchAndStoreNative()
Q_CORE_EXPORT int QBasicAtomicInt_fetchAndAddOrdered(volatile int *, int)
#define QT_BEGIN_NAMESPACE
static bool isTestAndSetNative()
T * fetchAndStoreRelaxed(T *newValue)
Q_CORE_EXPORT int QBasicAtomicInt_fetchAndStoreRelease(volatile int *, int)
Q_CORE_EXPORT void * QBasicAtomicPointer_fetchAndAddOrdered(void *volatile *, qptrdiff)
static bool isFetchAndAddWaitFree()
bool testAndSetRelaxed(int expectedValue, int newValue)
Q_CORE_EXPORT bool QBasicAtomicPointer_testAndSetOrdered(void *volatile *, void *, void *)
Q_CORE_EXPORT void * QBasicAtomicPointer_fetchAndStoreAcquire(void *volatile *, void *)
T * fetchAndStoreRelease(T *newValue)
bool testAndSetRelease(T *expectedValue, T *newValue)
Q_CORE_EXPORT void * QBasicAtomicPointer_fetchAndAddRelaxed(void *volatile *, qptrdiff)
static bool isFetchAndStoreWaitFree()
static bool isTestAndSetWaitFree()
Q_CORE_EXPORT bool QBasicAtomicPointer_testAndSetAcquire(void *volatile *, void *, void *)
bool testAndSetAcquire(T *expectedValue, T *newValue)
Q_CORE_EXPORT bool QBasicAtomicPointer_isFetchAndAddNative()
Q_CORE_EXPORT void * QBasicAtomicPointer_fetchAndAddRelease(void *volatile *, qptrdiff)
static bool isFetchAndAddWaitFree()
T * fetchAndStoreOrdered(T *newValue)
static bool isFetchAndStoreWaitFree()
Q_CORE_EXPORT bool QBasicAtomicPointer_testAndSetRelaxed(void *volatile *, void *, void *)
bool testAndSetRelaxed(T *expectedValue, T *newValue)
int fetchAndStoreAcquire(int newValue)
Q_CORE_EXPORT void * QBasicAtomicPointer_fetchAndAddAcquire(void *volatile *, qptrdiff)
static bool isTestAndSetWaitFree()
bool testAndSetOrdered(int expectedValue, int newValue)
Q_CORE_EXPORT bool QBasicAtomicPointer_isTestAndSetNative()
Q_CORE_EXPORT bool QBasicAtomicInt_testAndSetAcquire(volatile int *, int, int)
int fetchAndAddOrdered(int valueToAdd)
int fetchAndStoreOrdered(int newValue)
Q_CORE_EXPORT bool QBasicAtomicPointer_isFetchAndStoreNative()
int fetchAndAddRelease(int valueToAdd)
int fetchAndStoreRelease(int newValue)