Lines Matching refs:ptr
23 static inline void HalAtomicAdd32(volatile uint32_t* ptr, uint32_t value)
26 InterlockedExchangeAdd(ptr, value);
28 __sync_fetch_and_add(ptr, value);
32 static inline uint32_t HalAtomicAddAndFetch32(volatile uint32_t* ptr, uint32_t value)
35 return InterlockedExchangeAdd(ptr, value) + value;
37 return __sync_add_and_fetch(ptr, value);
43 static inline void HalAtomicAdd64(uint64_t* ptr, uint64_t value)
46 InterlockedExchangeAdd64((volatile long long*)ptr, value);
48 __sync_fetch_and_add(ptr, value);
52 static inline bool HalAtomicCmpAndSwap32(volatile uint32_t* ptr, uint32_t oldValue, uint32_t newValue)
55 uint32_t initial = InterlockedCompareExchange(ptr, newValue, oldValue);
58 return __sync_bool_compare_and_swap(ptr, oldValue, newValue);