| 701 | } |
| 702 | |
| 703 | size_t lwp_put_to_user(void *dst, void *src, size_t size) |
| 704 | { |
| 705 | struct rt_lwp *lwp = RT_NULL; |
| 706 | |
| 707 | /* check dst */ |
| 708 | if (dst < (void *)USER_VADDR_START) |
| 709 | { |
| 710 | return 0; |
| 711 | } |
| 712 | if (dst >= (void *)USER_VADDR_TOP) |
| 713 | { |
| 714 | return 0; |
| 715 | } |
| 716 | if ((void *)((char *)dst + size) > (void *)USER_VADDR_TOP) |
| 717 | { |
| 718 | return 0; |
| 719 | } |
| 720 | |
| 721 | lwp = lwp_self(); |
| 722 | if (!lwp) |
| 723 | { |
| 724 | return 0; |
| 725 | } |
| 726 | |
| 727 | return lwp_data_put(lwp, dst, src, size); |
| 728 | } |
| 729 | |
| 730 | rt_inline rt_bool_t _can_unaligned_access(const char *addr) |
| 731 | { |
no test coverage detected