1 /* SPDX-License-Identifier: GPL-2.0 */ 2 #ifndef _ASM_X86_UACCESS_32_H 3 #define _ASM_X86_UACCESS_32_H 4 5 /* 6 * User space memory access functions 7 */ 8 #include <linux/string.h> 9 #include <asm/asm.h> 10 #include <asm/page.h> 11 12 unsigned long __must_check __copy_user_ll 13 (void *to, const void *from, unsigned long n); 14 unsigned long __must_check __copy_from_user_ll_nocache_nozero 15 (void *to, const void __user *from, unsigned long n); 16 17 static __always_inline unsigned long __must_check 18 raw_copy_to_user(void __user *to, const void *from, unsigned long n) 19 { 20 return __copy_user_ll((__force void *)to, from, n); 21 } 22 23 static __always_inline unsigned long 24 raw_copy_from_user(void *to, const void __user *from, unsigned long n) 25 { 26 return __copy_user_ll(to, (__force const void *)from, n); 27 } 28 29 static __always_inline unsigned long 30 __copy_from_user_inatomic_nocache(void *to, const void __user *from, 31 unsigned long n) 32 { 33 return __copy_from_user_ll_nocache_nozero(to, from, n); 34 } 35 36 unsigned long __must_check clear_user(void __user *mem, unsigned long len); 37 unsigned long __must_check __clear_user(void __user *mem, unsigned long len); 38 39 #endif /* _ASM_X86_UACCESS_32_H */ 40