162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */ 262306a36Sopenharmony_ci#ifndef _ASM_X86_UACCESS_32_H 362306a36Sopenharmony_ci#define _ASM_X86_UACCESS_32_H 462306a36Sopenharmony_ci 562306a36Sopenharmony_ci/* 662306a36Sopenharmony_ci * User space memory access functions 762306a36Sopenharmony_ci */ 862306a36Sopenharmony_ci#include <linux/string.h> 962306a36Sopenharmony_ci#include <asm/asm.h> 1062306a36Sopenharmony_ci#include <asm/page.h> 1162306a36Sopenharmony_ci 1262306a36Sopenharmony_ciunsigned long __must_check __copy_user_ll 1362306a36Sopenharmony_ci (void *to, const void *from, unsigned long n); 1462306a36Sopenharmony_ciunsigned long __must_check __copy_from_user_ll_nocache_nozero 1562306a36Sopenharmony_ci (void *to, const void __user *from, unsigned long n); 1662306a36Sopenharmony_ci 1762306a36Sopenharmony_cistatic __always_inline unsigned long __must_check 1862306a36Sopenharmony_ciraw_copy_to_user(void __user *to, const void *from, unsigned long n) 1962306a36Sopenharmony_ci{ 2062306a36Sopenharmony_ci return __copy_user_ll((__force void *)to, from, n); 2162306a36Sopenharmony_ci} 2262306a36Sopenharmony_ci 2362306a36Sopenharmony_cistatic __always_inline unsigned long 2462306a36Sopenharmony_ciraw_copy_from_user(void *to, const void __user *from, unsigned long n) 2562306a36Sopenharmony_ci{ 2662306a36Sopenharmony_ci return __copy_user_ll(to, (__force const void *)from, n); 2762306a36Sopenharmony_ci} 2862306a36Sopenharmony_ci 2962306a36Sopenharmony_cistatic __always_inline unsigned long 3062306a36Sopenharmony_ci__copy_from_user_inatomic_nocache(void *to, const void __user *from, 3162306a36Sopenharmony_ci unsigned long n) 3262306a36Sopenharmony_ci{ 3362306a36Sopenharmony_ci return __copy_from_user_ll_nocache_nozero(to, from, n); 3462306a36Sopenharmony_ci} 3562306a36Sopenharmony_ci 3662306a36Sopenharmony_ciunsigned long __must_check clear_user(void __user *mem, unsigned long len); 3762306a36Sopenharmony_ciunsigned long __must_check __clear_user(void __user *mem, unsigned long len); 3862306a36Sopenharmony_ci 3962306a36Sopenharmony_ci#endif /* _ASM_X86_UACCESS_32_H */ 40