Lines Matching refs:ptr
68 extern unsigned long __xchg_small(volatile void *ptr, unsigned long val,
72 unsigned long __xchg(volatile void *ptr, unsigned long x, int size) in __xchg() argument
77 return __xchg_small(ptr, x, size); in __xchg()
80 return __xchg_asm("ll", "sc", (volatile u32 *)ptr, x); in __xchg()
86 return __xchg_asm("lld", "scd", (volatile u64 *)ptr, x); in __xchg()
93 #define arch_xchg(ptr, x) \ argument
95 __typeof__(*(ptr)) __res; \
105 __res = (__typeof__(*(ptr))) \
106 __xchg((ptr), (unsigned long)(x), sizeof(*(ptr))); \
149 extern unsigned long __cmpxchg_small(volatile void *ptr, unsigned long old,
153 unsigned long __cmpxchg(volatile void *ptr, unsigned long old, in __cmpxchg() argument
159 return __cmpxchg_small(ptr, old, new, size); in __cmpxchg()
162 return __cmpxchg_asm("ll", "sc", (volatile u32 *)ptr, in __cmpxchg()
170 return __cmpxchg_asm("lld", "scd", (volatile u64 *)ptr, in __cmpxchg()
178 #define arch_cmpxchg_local(ptr, old, new) \ argument
179 ((__typeof__(*(ptr))) \
180 __cmpxchg((ptr), \
181 (unsigned long)(__typeof__(*(ptr)))(old), \
182 (unsigned long)(__typeof__(*(ptr)))(new), \
183 sizeof(*(ptr))))
185 #define arch_cmpxchg(ptr, old, new) \ argument
187 __typeof__(*(ptr)) __res; \
197 __res = arch_cmpxchg_local((ptr), (old), (new)); \
211 #define arch_cmpxchg64_local(ptr, o, n) \ argument
213 BUILD_BUG_ON(sizeof(*(ptr)) != 8); \
214 arch_cmpxchg_local((ptr), (o), (n)); \
217 #define arch_cmpxchg64(ptr, o, n) \ argument
219 BUILD_BUG_ON(sizeof(*(ptr)) != 8); \
220 arch_cmpxchg((ptr), (o), (n)); \
225 # define arch_cmpxchg64_local(ptr, o, n) __generic_cmpxchg64_local((ptr), (o), (n)) argument
229 static inline unsigned long __cmpxchg64(volatile void *ptr, in __cmpxchg64() argument
290 "=" GCC_OFF_SMALL_ASM() (*(unsigned long long *)ptr) in __cmpxchg64()
291 : GCC_OFF_SMALL_ASM() (*(unsigned long long *)ptr), in __cmpxchg64()
300 # define arch_cmpxchg64(ptr, o, n) ({ \ argument
301 unsigned long long __old = (__typeof__(*(ptr)))(o); \
302 unsigned long long __new = (__typeof__(*(ptr)))(n); \
303 __typeof__(*(ptr)) __res; \
313 __res = __cmpxchg64((ptr), __old, __new); \
323 # define arch_cmpxchg64(ptr, o, n) arch_cmpxchg64_local((ptr), (o), (n)) argument