Lines Matching refs:ptr
81 volatile std::atomic<T>* to_std_atomic(volatile T* ptr) {
82 return reinterpret_cast<volatile std::atomic<T>*>(ptr);
85 volatile const std::atomic<T>* to_std_atomic_const(volatile const T* ptr) {
86 return reinterpret_cast<volatile const std::atomic<T>*>(ptr);
95 // result = *ptr;
97 // *ptr = new_value;
100 // I.e. replace |*ptr| with |new_value| if |*ptr| used to be |old_value|.
101 // Always return the value of |*ptr| before the operation.
103 inline Atomic8 Relaxed_CompareAndSwap(volatile Atomic8* ptr, Atomic8 old_value,
106 helper::to_std_atomic(ptr), &old_value, new_value,
111 inline Atomic16 Relaxed_CompareAndSwap(volatile Atomic16* ptr,
114 helper::to_std_atomic(ptr), &old_value, new_value,
119 inline Atomic32 Relaxed_CompareAndSwap(volatile Atomic32* ptr,
122 helper::to_std_atomic(ptr), &old_value, new_value,
127 inline Atomic32 Relaxed_AtomicExchange(volatile Atomic32* ptr,
129 return std::atomic_exchange_explicit(helper::to_std_atomic(ptr), new_value,
133 inline Atomic32 SeqCst_AtomicExchange(volatile Atomic32* ptr,
135 return std::atomic_exchange_explicit(helper::to_std_atomic(ptr), new_value,
139 inline Atomic32 Relaxed_AtomicIncrement(volatile Atomic32* ptr,
141 return increment + std::atomic_fetch_add_explicit(helper::to_std_atomic(ptr),
146 inline Atomic32 Acquire_CompareAndSwap(volatile Atomic32* ptr,
149 helper::to_std_atomic(ptr), &old_value, new_value,
154 inline Atomic8 Release_CompareAndSwap(volatile Atomic8* ptr, Atomic8 old_value,
157 helper::to_std_atomic(ptr), &old_value, new_value,
163 inline Atomic32 Release_CompareAndSwap(volatile Atomic32* ptr,
166 helper::to_std_atomic(ptr), &old_value, new_value,
171 inline Atomic32 AcquireRelease_CompareAndSwap(volatile Atomic32* ptr,
175 helper::to_std_atomic(ptr), &old_value, new_value,
180 inline void Relaxed_Store(volatile Atomic8* ptr, Atomic8 value) {
181 std::atomic_store_explicit(helper::to_std_atomic(ptr), value,
185 inline void Relaxed_Store(volatile Atomic16* ptr, Atomic16 value) {
186 std::atomic_store_explicit(helper::to_std_atomic(ptr), value,
190 inline void Relaxed_Store(volatile Atomic32* ptr, Atomic32 value) {
191 std::atomic_store_explicit(helper::to_std_atomic(ptr), value,
195 inline void Release_Store(volatile Atomic8* ptr, Atomic8 value) {
196 std::atomic_store_explicit(helper::to_std_atomic(ptr), value,
200 inline void Release_Store(volatile Atomic16* ptr, Atomic16 value) {
201 std::atomic_store_explicit(helper::to_std_atomic(ptr), value,
205 inline void Release_Store(volatile Atomic32* ptr, Atomic32 value) {
206 std::atomic_store_explicit(helper::to_std_atomic(ptr), value,
210 inline void SeqCst_Store(volatile Atomic8* ptr, Atomic8 value) {
211 std::atomic_store_explicit(helper::to_std_atomic(ptr), value,
215 inline void SeqCst_Store(volatile Atomic16* ptr, Atomic16 value) {
216 std::atomic_store_explicit(helper::to_std_atomic(ptr), value,
220 inline void SeqCst_Store(volatile Atomic32* ptr, Atomic32 value) {
221 std::atomic_store_explicit(helper::to_std_atomic(ptr), value,
225 inline Atomic8 Relaxed_Load(volatile const Atomic8* ptr) {
226 return std::atomic_load_explicit(helper::to_std_atomic_const(ptr),
230 inline Atomic16 Relaxed_Load(volatile const Atomic16* ptr) {
231 return std::atomic_load_explicit(helper::to_std_atomic_const(ptr),
235 inline Atomic32 Relaxed_Load(volatile const Atomic32* ptr) {
236 return std::atomic_load_explicit(helper::to_std_atomic_const(ptr),
240 inline Atomic8 Acquire_Load(volatile const Atomic8* ptr) {
241 return std::atomic_load_explicit(helper::to_std_atomic_const(ptr),
245 inline Atomic32 Acquire_Load(volatile const Atomic32* ptr) {
246 return std::atomic_load_explicit(helper::to_std_atomic_const(ptr),
250 inline Atomic8 SeqCst_Load(volatile const Atomic8* ptr) {
251 return std::atomic_load_explicit(helper::to_std_atomic_const(ptr),
255 inline Atomic32 SeqCst_Load(volatile const Atomic32* ptr) {
256 return std::atomic_load_explicit(helper::to_std_atomic_const(ptr),
262 inline Atomic64 Relaxed_CompareAndSwap(volatile Atomic64* ptr,
265 helper::to_std_atomic(ptr), &old_value, new_value,
270 inline Atomic64 Relaxed_AtomicExchange(volatile Atomic64* ptr,
272 return std::atomic_exchange_explicit(helper::to_std_atomic(ptr), new_value,
276 inline Atomic64 SeqCst_AtomicExchange(volatile Atomic64* ptr,
278 return std::atomic_exchange_explicit(helper::to_std_atomic(ptr), new_value,
282 inline Atomic64 Relaxed_AtomicIncrement(volatile Atomic64* ptr,
284 return increment + std::atomic_fetch_add_explicit(helper::to_std_atomic(ptr),
289 inline Atomic64 Acquire_CompareAndSwap(volatile Atomic64* ptr,
292 helper::to_std_atomic(ptr), &old_value, new_value,
297 inline Atomic64 Release_CompareAndSwap(volatile Atomic64* ptr,
300 helper::to_std_atomic(ptr), &old_value, new_value,
305 inline Atomic64 AcquireRelease_CompareAndSwap(volatile Atomic64* ptr,
309 helper::to_std_atomic(ptr), &old_value, new_value,
314 inline void Relaxed_Store(volatile Atomic64* ptr, Atomic64 value) {
315 std::atomic_store_explicit(helper::to_std_atomic(ptr), value,
319 inline void Release_Store(volatile Atomic64* ptr, Atomic64 value) {
320 std::atomic_store_explicit(helper::to_std_atomic(ptr), value,
324 inline void SeqCst_Store(volatile Atomic64* ptr, Atomic64 value) {
325 std::atomic_store_explicit(helper::to_std_atomic(ptr), value,
329 inline Atomic64 Relaxed_Load(volatile const Atomic64* ptr) {
330 return std::atomic_load_explicit(helper::to_std_atomic_const(ptr),
334 inline Atomic64 Acquire_Load(volatile const Atomic64* ptr) {
335 return std::atomic_load_explicit(helper::to_std_atomic_const(ptr),
339 inline Atomic64 SeqCst_Load(volatile const Atomic64* ptr) {
340 return std::atomic_load_explicit(helper::to_std_atomic_const(ptr),