Lines Matching full:volatile

23 extern "C" char _InterlockedExchange8(char volatile *Addend, char Value);
25 extern "C" short _InterlockedExchange16(short volatile *Addend, short Value);
27 extern "C" long _InterlockedExchange(long volatile *Addend, long Value);
29 extern "C" long _InterlockedExchangeAdd(long volatile *Addend, long Value);
31 extern "C" char _InterlockedCompareExchange8(char volatile *Destination,
34 extern "C" short _InterlockedCompareExchange16(short volatile *Destination,
38 long long volatile *Destination, long long Exchange, long long Comparand);
41 void *volatile *Destination,
44 extern "C" long __cdecl _InterlockedCompareExchange(long volatile *Destination,
50 extern "C" long long _InterlockedExchangeAdd64(long long volatile *Addend,
72 const volatile T *a, memory_order mo) {
89 inline void atomic_store(volatile T *a, typename T::Type v, memory_order mo) {
105 inline u32 atomic_fetch_add(volatile atomic_uint32_t *a,
109 return (u32)_InterlockedExchangeAdd((volatile long *)&a->val_dont_use,
113 inline uptr atomic_fetch_add(volatile atomic_uintptr_t *a,
118 return (uptr)_InterlockedExchangeAdd64((volatile long long *)&a->val_dont_use,
121 return (uptr)_InterlockedExchangeAdd((volatile long *)&a->val_dont_use,
126 inline u32 atomic_fetch_sub(volatile atomic_uint32_t *a,
130 return (u32)_InterlockedExchangeAdd((volatile long *)&a->val_dont_use,
134 inline uptr atomic_fetch_sub(volatile atomic_uintptr_t *a,
139 return (uptr)_InterlockedExchangeAdd64((volatile long long *)&a->val_dont_use,
142 return (uptr)_InterlockedExchangeAdd((volatile long *)&a->val_dont_use,
147 inline u8 atomic_exchange(volatile atomic_uint8_t *a,
151 return (u8)_InterlockedExchange8((volatile char*)&a->val_dont_use, v);
154 inline u16 atomic_exchange(volatile atomic_uint16_t *a,
158 return (u16)_InterlockedExchange16((volatile short*)&a->val_dont_use, v);
161 inline u32 atomic_exchange(volatile atomic_uint32_t *a,
165 return (u32)_InterlockedExchange((volatile long*)&a->val_dont_use, v);
168 inline bool atomic_compare_exchange_strong(volatile atomic_uint8_t *a,
177 (volatile char*)&a->val_dont_use, (char)xchgv, (char)cmpv);
194 inline bool atomic_compare_exchange_strong(volatile atomic_uintptr_t *a,
200 (void*volatile*)&a->val_dont_use, (void*)xchg, (void*)cmpv);
207 inline bool atomic_compare_exchange_strong(volatile atomic_uint16_t *a,
213 (volatile short*)&a->val_dont_use, (short)xchg, (short)cmpv);
220 inline bool atomic_compare_exchange_strong(volatile atomic_uint32_t *a,
226 (volatile long*)&a->val_dont_use, (long)xchg, (long)cmpv);
233 inline bool atomic_compare_exchange_strong(volatile atomic_uint64_t *a,
239 (volatile long long*)&a->val_dont_use, (long long)xchg, (long long)cmpv);
247 inline bool atomic_compare_exchange_weak(volatile T *a,