| 1 |
|
| 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
|