|  | #ifndef __ASM_SH_UACCESS_H | 
|  | #define __ASM_SH_UACCESS_H | 
|  |  | 
|  | #ifdef CONFIG_SUPERH32 | 
|  | # include "uaccess_32.h" | 
|  | #else | 
|  | # include "uaccess_64.h" | 
|  | #endif | 
|  |  | 
|  | static inline unsigned long | 
|  | copy_from_user(void *to, const void __user *from, unsigned long n) | 
|  | { | 
|  | unsigned long __copy_from = (unsigned long) from; | 
|  | __kernel_size_t __copy_size = (__kernel_size_t) n; | 
|  |  | 
|  | if (__copy_size && __access_ok(__copy_from, __copy_size)) | 
|  | return __copy_user(to, from, __copy_size); | 
|  |  | 
|  | return __copy_size; | 
|  | } | 
|  |  | 
|  | static inline unsigned long | 
|  | copy_to_user(void __user *to, const void *from, unsigned long n) | 
|  | { | 
|  | unsigned long __copy_to = (unsigned long) to; | 
|  | __kernel_size_t __copy_size = (__kernel_size_t) n; | 
|  |  | 
|  | if (__copy_size && __access_ok(__copy_to, __copy_size)) | 
|  | return __copy_user(to, from, __copy_size); | 
|  |  | 
|  | return __copy_size; | 
|  | } | 
|  |  | 
|  | #endif /* __ASM_SH_UACCESS_H */ |