Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00023 #ifndef __RS_ATOMIC_RSH__
00024 #define __RS_ATOMIC_RSH__
00025
00026 #if (defined(RS_VERSION) && (RS_VERSION >= 14))
00027
00036 extern int32_t __attribute__((overloadable))
00037 rsAtomicInc(volatile int32_t* addr);
00046 extern uint32_t __attribute__((overloadable))
00047 rsAtomicInc(volatile uint32_t* addr);
00048
00056 extern int32_t __attribute__((overloadable))
00057 rsAtomicDec(volatile int32_t* addr);
00065 extern uint32_t __attribute__((overloadable))
00066 rsAtomicDec(volatile uint32_t* addr);
00067
00076 extern int32_t __attribute__((overloadable))
00077 rsAtomicAdd(volatile int32_t* addr, int32_t value);
00086 extern uint32_t __attribute__((overloadable))
00087 rsAtomicAdd(volatile uint32_t* addr, uint32_t value);
00088
00097 extern int32_t __attribute__((overloadable))
00098 rsAtomicSub(volatile int32_t* addr, int32_t value);
00107 extern uint32_t __attribute__((overloadable))
00108 rsAtomicSub(volatile uint32_t* addr, uint32_t value);
00109
00118 extern int32_t __attribute__((overloadable))
00119 rsAtomicAnd(volatile int32_t* addr, int32_t value);
00128 extern uint32_t __attribute__((overloadable))
00129 rsAtomicAnd(volatile uint32_t* addr, uint32_t value);
00130
00139 extern int32_t __attribute__((overloadable))
00140 rsAtomicOr(volatile int32_t* addr, int32_t value);
00149 extern uint32_t __attribute__((overloadable))
00150 rsAtomicOr(volatile uint32_t* addr, uint32_t value);
00151
00160 extern uint32_t __attribute__((overloadable))
00161 rsAtomicXor(volatile uint32_t* addr, uint32_t value);
00170 extern int32_t __attribute__((overloadable))
00171 rsAtomicXor(volatile int32_t* addr, int32_t value);
00172
00182 extern uint32_t __attribute__((overloadable))
00183 rsAtomicMin(volatile uint32_t* addr, uint32_t value);
00193 extern int32_t __attribute__((overloadable))
00194 rsAtomicMin(volatile int32_t* addr, int32_t value);
00195
00205 extern uint32_t __attribute__((overloadable))
00206 rsAtomicMax(volatile uint32_t* addr, uint32_t value);
00216 extern int32_t __attribute__((overloadable))
00217 rsAtomicMax(volatile int32_t* addr, int32_t value);
00218
00230 extern int32_t __attribute__((overloadable))
00231 rsAtomicCas(volatile int32_t* addr, int32_t compareValue, int32_t newValue);
00232
00244 extern uint32_t __attribute__((overloadable))
00245 rsAtomicCas(volatile uint32_t* addr, uint32_t compareValue, uint32_t newValue);
00246
00247 #endif //defined(RS_VERSION) && (RS_VERSION >= 14)
00248
00249 #endif
00250