Lines Matching +full:3 +full:x
55 #define put_user(x, ptr) \ argument
56 __put_user_check((x), (ptr), sizeof(*(ptr)))
58 #define __put_user(x, ptr) \ argument
59 __put_user_nocheck((x), (ptr), sizeof(*(ptr)))
61 #define __ptr(x) ((unsigned long *)(x)) argument
63 #define get_user(x, ptr) \ argument
64 __get_user_check((x), (ptr), sizeof(*(ptr)))
66 #define __get_user(x, ptr) \ argument
67 __get_user_nocheck((x), (ptr), sizeof(*(ptr)))
69 #define __put_user_nocheck(x, ptr, size) \ argument
73 typeof(*(ptr)) __pu_val = (typeof(*(ptr)))(x); \
80 #define __put_user_check(x, ptr, size) \ argument
84 typeof(*(ptr)) __pu_val = (typeof(*(ptr)))(x); \
90 #define __put_user_size(x, ptr, size, retval) \ argument
95 __put_user_asm_b(x, ptr, retval); \
98 __put_user_asm_h(x, ptr, retval); \
101 __put_user_asm_w(x, ptr, retval); \
104 __put_user_asm_64(x, ptr, retval); \
119 #define __put_user_asm_b(x, ptr, err) \ argument
124 " br 3f \n" \
125 "2: mov %0, %3 \n" \
126 " br 3f \n" \
131 "3: \n" \
132 : "=r"(err), "=r"(x), "=r"(ptr), "=r"(errcode) \
133 : "0"(err), "1"(x), "2"(ptr), "3"(-EFAULT) \
137 #define __put_user_asm_h(x, ptr, err) \ argument
142 " br 3f \n" \
143 "2: mov %0, %3 \n" \
144 " br 3f \n" \
149 "3: \n" \
150 : "=r"(err), "=r"(x), "=r"(ptr), "=r"(errcode) \
151 : "0"(err), "1"(x), "2"(ptr), "3"(-EFAULT) \
155 #define __put_user_asm_w(x, ptr, err) \ argument
160 " br 3f \n" \
161 "2: mov %0, %3 \n" \
162 " br 3f \n" \
167 "3: \n" \
168 : "=r"(err), "=r"(x), "=r"(ptr), "=r"(errcode) \
169 : "0"(err), "1"(x), "2"(ptr), "3"(-EFAULT) \
173 #define __put_user_asm_64(x, ptr, err) \ argument
177 typeof(*(ptr))src = (typeof(*(ptr)))x; \
181 " ldw %3, (%1, 0) \n" \
182 "1: stw %3, (%2, 0) \n" \
183 " ldw %3, (%1, 4) \n" \
184 "2: stw %3, (%2, 4) \n" \
186 "3: mov %0, %4 \n" \
190 ".long 1b, 3b \n" \
191 ".long 2b, 3b \n" \
196 : "0"(err), "1"(psrc), "2"(ptr), "3"(0), "4"(-EFAULT) \
200 #define __get_user_nocheck(x, ptr, size) \ argument
203 __get_user_size(x, (ptr), (size), __gu_err); \
207 #define __get_user_check(x, ptr, size) \ argument
212 __get_user_size(x, __gu_ptr, size, __gu_err); \
216 #define __get_user_size(x, ptr, size, retval) \ argument
220 __get_user_asm_common((x), ptr, "ldb", retval); \
223 __get_user_asm_common((x), ptr, "ldh", retval); \
226 __get_user_asm_common((x), ptr, "ldw", retval); \
229 x = 0; \
234 #define __get_user_asm_common(x, ptr, ins, err) \ argument
239 " br 3f \n" \
243 " br 3f \n" \
248 "3: \n" \
249 : "=r"(err), "=r"(x), "=r"(errcode) \
262 " mov %3, %1 \n" \
263 " or %3, %2 \n" \
264 " andi %3, 3 \n" \
265 " cmpnei %3, 0 \n" \
269 " bt 3f \n" \
270 " ldw %3, (%2, 0) \n" \
274 "2: stw %3, (%1, 0) \n" \
282 "3: cmplti %0, 4 \n" /* 1W */ \
284 " ldw %3, (%2, 0) \n" \
285 "4: stw %3, (%1, 0) \n" \
289 " br 3b \n" \
292 " ldb %3, (%2, 0) \n" \
293 "6: stb %3, (%1, 0) \n" \
325 " mov %3, %1 \n" \
326 " or %3, %2 \n" \
327 " andi %3, 3 \n" \
328 " cmpnei %3, 0 \n" \
332 " bt 3f \n" \
333 "2: ldw %3, (%2, 0) \n" \
335 " stw %3, (%1, 0) \n" \
337 "11: ldw %3, (%2, 8) \n" \
339 " stw %3, (%1, 8) \n" \
345 "3: cmplti %0, 4 \n" \
347 "4: ldw %3, (%2, 0) \n" \
348 " stw %3, (%1, 0) \n" \
352 " br 3b \n" \
355 "6: ldb %3, (%2, 0) \n" \
356 " stb %3, (%1, 0) \n" \
361 "8: stw %3, (%1, 0) \n" \
366 "13: stw %3, (%1, 8) \n" \