Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame^] | 1 | #include "asm/uaccess.h" |
| 2 | #include "linux/errno.h" |
| 3 | #include "linux/module.h" |
| 4 | |
| 5 | unsigned int arch_csum_partial(const unsigned char *buff, int len, int sum); |
| 6 | |
| 7 | unsigned int csum_partial(unsigned char *buff, int len, int sum) |
| 8 | { |
| 9 | return arch_csum_partial(buff, len, sum); |
| 10 | } |
| 11 | |
| 12 | EXPORT_SYMBOL(csum_partial); |
| 13 | |
| 14 | unsigned int csum_partial_copy_to(const unsigned char *src, |
| 15 | unsigned char __user *dst, int len, int sum, |
| 16 | int *err_ptr) |
| 17 | { |
| 18 | if(copy_to_user(dst, src, len)){ |
| 19 | *err_ptr = -EFAULT; |
| 20 | return(-1); |
| 21 | } |
| 22 | |
| 23 | return(arch_csum_partial(src, len, sum)); |
| 24 | } |
| 25 | |
| 26 | unsigned int csum_partial_copy_from(const unsigned char __user *src, |
| 27 | unsigned char *dst, int len, int sum, |
| 28 | int *err_ptr) |
| 29 | { |
| 30 | if(copy_from_user(dst, src, len)){ |
| 31 | *err_ptr = -EFAULT; |
| 32 | return(-1); |
| 33 | } |
| 34 | |
| 35 | return arch_csum_partial(dst, len, sum); |
| 36 | } |