Rev 3433 | Rev 3536 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 3433 | Rev 3471 | ||
|---|---|---|---|
| Line 40... | Line 40... | ||
| 40 | #include <debug.h> |
40 | #include <debug.h> |
| 41 | #include <ipc/ipc.h> |
41 | #include <ipc/ipc.h> |
| 42 | #include <ipc/sysipc.h> |
42 | #include <ipc/sysipc.h> |
| 43 | #include <ipc/irq.h> |
43 | #include <ipc/irq.h> |
| 44 | #include <ipc/ipcrsc.h> |
44 | #include <ipc/ipcrsc.h> |
| 45 | #include <ipc/ipc_kbox.h> |
45 | #include <ipc/kbox.h> |
| 46 | #include <udebug/udebug_ipc.h> |
46 | #include <udebug/udebug_ipc.h> |
| 47 | #include <arch/interrupt.h> |
47 | #include <arch/interrupt.h> |
| 48 | #include <print.h> |
- | |
| 49 | #include <syscall/copy.h> |
48 | #include <syscall/copy.h> |
| 50 | #include <security/cap.h> |
49 | #include <security/cap.h> |
| 51 | #include <mm/as.h> |
50 | #include <mm/as.h> |
| 52 | #include <print.h> |
51 | #include <print.h> |
| 53 | 52 | ||
| Line 821... | Line 820... | ||
| 821 | if (call->flags & IPC_CALL_ANSWERED) { |
820 | if (call->flags & IPC_CALL_ANSWERED) { |
| 822 | process_answer(call); |
821 | process_answer(call); |
| 823 | 822 | ||
| 824 | ASSERT(! (call->flags & IPC_CALL_STATIC_ALLOC)); |
823 | ASSERT(! (call->flags & IPC_CALL_STATIC_ALLOC)); |
| 825 | 824 | ||
| - | 825 | if (!(call->flags & IPC_CALL_DISCARD_ANSWER)) |
|
| 826 | atomic_dec(&TASK->active_calls); |
826 | atomic_dec(&TASK->active_calls); |
| 827 | 827 | ||
| 828 | if (call->flags & IPC_CALL_DISCARD_ANSWER) { |
828 | if (call->flags & IPC_CALL_DISCARD_ANSWER) { |
| 829 | ipc_call_free(call); |
829 | ipc_call_free(call); |
| 830 | goto restart; |
830 | goto restart; |
| 831 | } |
831 | } |
| Line 897... | Line 897... | ||
| 897 | 897 | ||
| 898 | rc = copy_from_uspace(&taskid_arg, uspace_taskid_arg, sizeof(sysarg64_t)); |
898 | rc = copy_from_uspace(&taskid_arg, uspace_taskid_arg, sizeof(sysarg64_t)); |
| 899 | if (rc != 0) |
899 | if (rc != 0) |
| 900 | return (unative_t) rc; |
900 | return (unative_t) rc; |
| 901 | 901 | ||
| 902 | printf("sys_ipc_connect_kbox(%lld, %d)\n", taskid_arg.value); |
902 | LOG("sys_ipc_connect_kbox(%" PRIu64 ")\n", taskid_arg.value); |
| 903 | 903 | ||
| 904 | return ipc_connect_kbox(taskid_arg.value); |
904 | return ipc_connect_kbox(taskid_arg.value); |
| 905 | #else |
905 | #else |
| 906 | return (unative_t) ENOTSUP; |
906 | return (unative_t) ENOTSUP; |
| 907 | #endif |
907 | #endif |