Rev 2808 | Rev 2810 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 2808 | Rev 2809 | ||
---|---|---|---|
Line 563... | Line 563... | ||
563 | IPC_SET_ARG5(call->data, call->priv); |
563 | IPC_SET_ARG5(call->data, call->priv); |
564 | } |
564 | } |
565 | 565 | ||
566 | if (call->buffer) { |
566 | if (call->buffer) { |
567 | /* This must be an affirmative answer to IPC_M_DATA_READ. */ |
567 | /* This must be an affirmative answer to IPC_M_DATA_READ. */ |
- | 568 | /* or IPC_M_DEBUG_MEM_READ... */ |
|
568 | uintptr_t dst = IPC_GET_ARG1(call->data); |
569 | uintptr_t dst = IPC_GET_ARG1(call->data); |
569 | size_t size = IPC_GET_ARG2(call->data); |
570 | size_t size = IPC_GET_ARG2(call->data); |
570 | int rc = copy_to_uspace((void *) dst, call->buffer, size); |
571 | int rc = copy_to_uspace((void *) dst, call->buffer, size); |
571 | if (rc) |
572 | if (rc) |
572 | IPC_SET_RETVAL(call->data, rc); |
573 | IPC_SET_RETVAL(call->data, rc); |
Line 784... | Line 785... | ||
784 | sizeof(call->data.args)); |
785 | sizeof(call->data.args)); |
785 | if (rc != 0) { |
786 | if (rc != 0) { |
786 | ipc_call_free(call); |
787 | ipc_call_free(call); |
787 | return (unative_t) rc; |
788 | return (unative_t) rc; |
788 | } |
789 | } |
- | 790 | if (TASK->being_debugged) |
|
- | 791 | klog_printf("call_async_slow: phone=%u, uspace_ptr=%u, arg0=%u", |
|
- | 792 | phoneid, (unsigned)data, call->data.args[0]); |
|
789 | if (!(res = request_preprocess(call, phone))) |
793 | if (!(res = request_preprocess(call, phone))) |
790 | ipc_call(phone, call); |
794 | ipc_call(phone, call); |
791 | else |
795 | else |
792 | ipc_backsend_err(phone, call, res); |
796 | ipc_backsend_err(phone, call, res); |
793 | 797 |