| 673 | } |
| 674 | |
| 675 | size_t lwp_get_from_user(void *dst, void *src, size_t size) |
| 676 | { |
| 677 | struct rt_lwp *lwp = RT_NULL; |
| 678 | |
| 679 | /* check src */ |
| 680 | |
| 681 | if (src < (void *)USER_VADDR_START) |
| 682 | { |
| 683 | return 0; |
| 684 | } |
| 685 | if (src >= (void *)USER_VADDR_TOP) |
| 686 | { |
| 687 | return 0; |
| 688 | } |
| 689 | if ((void *)((char *)src + size) > (void *)USER_VADDR_TOP) |
| 690 | { |
| 691 | return 0; |
| 692 | } |
| 693 | |
| 694 | lwp = lwp_self(); |
| 695 | if (!lwp) |
| 696 | { |
| 697 | return 0; |
| 698 | } |
| 699 | |
| 700 | return lwp_data_get(lwp, dst, src, size); |
| 701 | } |
| 702 | |
| 703 | size_t lwp_put_to_user(void *dst, void *src, size_t size) |
| 704 | { |
no test coverage detected