42 #ifndef QATOMIC_INTEGRITY_H 43 #define QATOMIC_INTEGRITY_H 45 #include <INTEGRITY.h> 51 #define qt_pp2addrp(a) reinterpret_cast<Address *>(const_cast<T **>(a)) 52 #define qt_ip2addrp(a) reinterpret_cast<Address *>(const_cast<int *>(a)) 53 #define qt_p2addrp(a) reinterpret_cast<Address *>(a) 54 #define qt_addr(a) reinterpret_cast<Address>(a) 57 #define Q_ATOMIC_INT_REFERENCE_COUNTING_IS_ALWAYS_NATIVE 62 #define Q_ATOMIC_INT_REFERENCE_COUNTING_IS_WAIT_FREE 67 #define Q_ATOMIC_INT_TEST_AND_SET_IS_ALWAYS_NATIVE 72 #define Q_ATOMIC_INT_TEST_AND_SET_IS_WAIT_FREE 77 #define Q_ATOMIC_INT_FETCH_AND_STORE_IS_ALWAYS_NATIVE 82 #define Q_ATOMIC_INT_FETCH_AND_STORE_IS_WAIT_FREE 87 #define Q_ATOMIC_INT_FETCH_AND_ADD_IS_ALWAYS_NATIVE 92 #define Q_ATOMIC_INT_FETCH_AND_ADD_IS_WAIT_FREE 97 #define Q_ATOMIC_POINTER_TEST_AND_SET_IS_ALWAYS_NATIVE 103 #define Q_ATOMIC_POINTER_FETCH_AND_ADD_IS_WAIT_FREE 105 template <
typename T>
109 #define Q_ATOMIC_POINTER_FETCH_AND_STORE_IS_ALWAYS_NATIVE 111 template <
typename T>
115 #define Q_ATOMIC_POINTER_FETCH_AND_STORE_IS_WAIT_FREE 117 template <
typename T>
121 #define Q_ATOMIC_POINTER_FETCH_AND_ADD_IS_ALWAYS_NATIVE 123 template <
typename T>
127 #define Q_ATOMIC_POINTER_TEST_AND_SET_IS_WAIT_FREE 129 template <
typename T>
224 template <
typename T>
230 template <
typename T>
236 template <
typename T>
242 template <
typename T>
250 template <
typename T>
259 return reinterpret_cast<T *
>(old_value);
262 template <
typename T>
268 template <
typename T>
274 template <
typename T>
282 template <
typename T>
288 return reinterpret_cast<T *
>(old_value);
291 template <
typename T>
297 template <
typename T>
303 template <
typename T>
313 #endif // QATOMIC_INTEGRITY_H static bool isFetchAndStoreNative()
static bool isTestAndSetNative()
int fetchAndStoreRelease(int newValue)
static bool isReferenceCountingNative()
T * fetchAndAddRelaxed(qptrdiff valueToAdd)
#define QT_END_NAMESPACE
This macro expands to.
static bool isFetchAndAddNative()
static bool isTestAndSetNative()
static bool isFetchAndAddNative()
T * fetchAndStoreRelease(T *newValue)
static bool isTestAndSetWaitFree()
T * fetchAndAddRelease(qptrdiff valueToAdd)
bool testAndSetOrdered(T *expectedValue, T *newValue)
int fetchAndAddAcquire(int valueToAdd)
T * fetchAndAddAcquire(qptrdiff valueToAdd)
int fetchAndStoreRelaxed(int newValue)
T * fetchAndAddOrdered(qptrdiff valueToAdd)
bool testAndSetAcquire(int expectedValue, int newValue)
bool testAndSetRelaxed(int expectedValue, int newValue)
#define QT_BEGIN_NAMESPACE
This macro expands to.
int fetchAndStoreAcquire(int newValue)
QIntegerForSizeof< void * >::Signed qptrdiff
T * fetchAndStoreOrdered(T *newValue)
#define Q_INLINE_TEMPLATE
int fetchAndAddRelease(int valueToAdd)
bool testAndSetOrdered(int expectedValue, int newValue)
T * fetchAndStoreAcquire(T *newValue)
static bool isFetchAndStoreWaitFree()
static bool isTestAndSetWaitFree()
static bool isReferenceCountingWaitFree()
int fetchAndAddOrdered(int valueToAdd)
static bool isFetchAndStoreWaitFree()
static bool isFetchAndAddWaitFree()
static bool isFetchAndAddWaitFree()
bool testAndSetRelease(int expectedValue, int newValue)
int fetchAndAddRelaxed(int valueToAdd)
int fetchAndStoreOrdered(int newValue)
bool testAndSetRelaxed(T *expectedValue, T *newValue)
bool testAndSetRelease(T *expectedValue, T *newValue)
T * fetchAndStoreRelaxed(T *newValue)
static bool isFetchAndStoreNative()
bool testAndSetAcquire(T *expectedValue, T *newValue)