31 #undef SDL_AtomicCASPtr
80 if (a->
value == oldval) {
104 #if defined(__GNUC__) && defined(__arm__) && \
105 (defined(__ARM_ARCH_6__) || defined(__ARM_ARCH_6J__) || defined(__ARM_ARCH_6K__) || defined(__ARM_ARCH_6T2__) || defined(__ARM_ARCH_6Z__) || defined(__ARM_ARCH_6ZK__))
108 " .globl _SDL_MemoryBarrierRelease\n"
109 " .globl _SDL_MemoryBarrierAcquire\n"
110 "_SDL_MemoryBarrierRelease:\n"
111 "_SDL_MemoryBarrierAcquire:\n"
113 " mcr p15, 0, r0, c7, c10, 5\n"
static __inline__ void enterLock(void *a)
DECLSPEC void SDLCALL SDL_AtomicUnlock(SDL_SpinLock *lock)
Unlock a spin lock by setting it to 0. Always returns immediately.
A type representing an atomic integer value. It is a struct so people don't accidentally use numeric ...
GLboolean GLboolean GLboolean GLboolean a
DECLSPEC void SDLCALL SDL_AtomicLock(SDL_SpinLock *lock)
Lock a spin lock by setting it to a non-zero value.
static __inline__ void leaveLock(void *a)
DECLSPEC SDL_bool SDLCALL SDL_AtomicCASPtr(void **a, void *oldval, void *newval)
Set a pointer to a new value if it is currently an old value.
DECLSPEC SDL_bool SDLCALL SDL_AtomicCAS(SDL_atomic_t *a, int oldval, int newval)
Set an atomic variable to a new value if it is currently an old value.
static SDL_SpinLock locks[32]