Lines Matching refs:ptr
14 static inline uint32_t atomic_lock(__unused const volatile void *ptr) { in atomic_lock() argument
18 static inline void atomic_unlock(__unused const volatile void *ptr, uint32_t save) { in atomic_unlock() argument
47 bool __atomic_is_lock_free_c(__unused size_t size, __unused const volatile void *ptr) { in __atomic_is_lock_free_c() argument
51 return (((uintptr_t)ptr) & align) == 0; in __atomic_is_lock_free_c()
79 _Bool __atomic_compare_exchange_c(uint size, volatile void *ptr, void *expected, in __atomic_compare_exchange_c() argument
81 uint32_t save = atomic_lock(ptr); in __atomic_compare_exchange_c()
82 if (memcmp(remove_volatile_cast_no_barrier(void *, ptr), expected, size) == 0) { in __atomic_compare_exchange_c()
83 memcpy(remove_volatile_cast_no_barrier(void *, ptr), desired, size); in __atomic_compare_exchange_c()
84 atomic_unlock(ptr, save); in __atomic_compare_exchange_c()
87 memcpy(expected, remove_volatile_cast_no_barrier(void *, ptr), size); in __atomic_compare_exchange_c()
88 atomic_unlock(ptr, save); in __atomic_compare_exchange_c()
94 void __atomic_exchange_c(uint size, volatile void *ptr, void *val, void *old, __unused int model) { in __atomic_exchange_c() argument
96 uint32_t save = atomic_lock(ptr); in __atomic_exchange_c()
97 memcpy(old, remove_volatile_cast_no_barrier(void *, ptr), size); in __atomic_exchange_c()
98 memcpy(remove_volatile_cast_no_barrier(void *, ptr), val, size); in __atomic_exchange_c()
99 atomic_unlock(ptr, save); in __atomic_exchange_c()
137 bool __atomic_compare_exchange_##n(volatile void *ptr, void *expected, type desired, \
139 uint32_t save = atomic_lock(ptr); \
140 if (*(volatile type *)ptr == *(type *)expected) { \
141 *(volatile type *)ptr = desired; \
142 atomic_unlock(ptr, save); \
145 *(type *)expected = *(volatile type *)ptr; \
146 atomic_unlock(ptr, save); \
170 type __atomic_fetch_##opname##_##n(volatile void *ptr, type val, __unused int model) { \
171 uint32_t save = atomic_lock(ptr); \
172 type tmp = *(volatile type *)ptr; \
173 *(volatile type *)ptr = tmp op val; \
174 atomic_unlock(ptr, save); \
179 type __atomic_fetch_nand_##n(type *ptr, type val, __unused int model) { \
180 uint32_t save = atomic_lock(ptr); \
181 type tmp = *ptr; \
182 *ptr = ~(tmp & val); \
183 atomic_unlock(ptr, save); \