1 /* SPDX-License-Identifier: GPL-2.0 */ 2 #ifndef _ASM_GENERIC_FLAT_H 3 #define _ASM_GENERIC_FLAT_H 4 5 #include <linux/uaccess.h> 6 7 static inline int flat_get_addr_from_rp(u32 __user *rp, u32 relval, u32 flags, 8 u32 *addr) 9 { 10 #ifndef CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS 11 return copy_from_user(addr, rp, 4) ? -EFAULT : 0; 12 #else 13 return get_user(*addr, rp); 14 #endif 15 } 16 17 static inline int flat_put_addr_at_rp(u32 __user *rp, u32 addr, u32 rel) 18 { 19 #ifndef CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS 20 return copy_to_user(rp, &addr, 4) ? -EFAULT : 0; 21 #else 22 return put_user(addr, rp); 23 #endif 24 } 25 26 #endif /* _ASM_GENERIC_FLAT_H */ 27