Lines Matching refs:ptr
34 static __always_inline unsigned long __percpu_##op(void *ptr, \
42 "am"#asm_op".w" " %[ret], %[val], %[ptr] \n" \
43 : [ret] "=&r" (ret), [ptr] "+ZB"(*(u32 *)ptr) \
48 "am"#asm_op".d" " %[ret], %[val], %[ptr] \n" \
49 : [ret] "=&r" (ret), [ptr] "+ZB"(*(u64 *)ptr) \
65 static __always_inline unsigned long __percpu_read(void __percpu *ptr, int size)
71 __asm__ __volatile__ ("ldx.b %[ret], $r21, %[ptr] \n"
73 : [ptr] "r"(ptr)
77 __asm__ __volatile__ ("ldx.h %[ret], $r21, %[ptr] \n"
79 : [ptr] "r"(ptr)
83 __asm__ __volatile__ ("ldx.w %[ret], $r21, %[ptr] \n"
85 : [ptr] "r"(ptr)
89 __asm__ __volatile__ ("ldx.d %[ret], $r21, %[ptr] \n"
91 : [ptr] "r"(ptr)
102 static __always_inline void __percpu_write(void __percpu *ptr, unsigned long val, int size)
106 __asm__ __volatile__("stx.b %[val], $r21, %[ptr] \n"
108 : [val] "r" (val), [ptr] "r" (ptr)
112 __asm__ __volatile__("stx.h %[val], $r21, %[ptr] \n"
114 : [val] "r" (val), [ptr] "r" (ptr)
118 __asm__ __volatile__("stx.w %[val], $r21, %[ptr] \n"
120 : [val] "r" (val), [ptr] "r" (ptr)
124 __asm__ __volatile__("stx.d %[val], $r21, %[ptr] \n"
126 : [val] "r" (val), [ptr] "r" (ptr)
134 static __always_inline unsigned long __percpu_xchg(void *ptr, unsigned long val, int size)
139 return __xchg_small((volatile void *)ptr, val, size);
142 return __xchg_asm("amswap.w", (volatile u32 *)ptr, (u32)val);
145 return __xchg_asm("amswap.d", (volatile u64 *)ptr, (u64)val);
227 #define this_cpu_cmpxchg_1(ptr, o, n) _protect_cmpxchg_local(ptr, o, n)
228 #define this_cpu_cmpxchg_2(ptr, o, n) _protect_cmpxchg_local(ptr, o, n)
229 #define this_cpu_cmpxchg_4(ptr, o, n) _protect_cmpxchg_local(ptr, o, n)
230 #define this_cpu_cmpxchg_8(ptr, o, n) _protect_cmpxchg_local(ptr, o, n)