Changeset bc117a5 in mainline for kernel/generic/src/ipc/ipc.c
- Timestamp:
- 2016-08-29T12:43:10Z (8 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- c32b6f0
- Parents:
- 6d351e6
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/generic/src/ipc/ipc.c
r6d351e6 rbc117a5 188 188 } 189 189 190 /** Helper function to facilitate synchronous calls. 191 * 192 * @param phone Destination kernel phone structure. 193 * @param request Call structure with request. 194 * 195 * @return EOK on success or a negative error code. 196 * 197 */ 198 int ipc_call_sync(phone_t *phone, call_t *request) 199 { 200 answerbox_t *mybox = slab_alloc(ipc_answerbox_slab, 0); 201 ipc_answerbox_init(mybox, TASK); 202 203 /* We will receive data in a special box. */ 204 request->callerbox = mybox; 205 206 int rc = ipc_call(phone, request); 207 if (rc != EOK) { 208 slab_free(ipc_answerbox_slab, mybox); 209 return rc; 210 } 211 // TODO: forget the call if interrupted 212 (void) ipc_wait_for_call(mybox, SYNCH_NO_TIMEOUT, SYNCH_FLAGS_NONE); 213 214 slab_free(ipc_answerbox_slab, mybox); 215 return EOK; 216 } 217 190 218 /** Answer a message which was not dispatched and is not listed in any queue. 191 219 * … … 756 784 ipc_cleanup_call_list(&TASK->answerbox, 757 785 &TASK->answerbox.dispatched_calls); 758 786 759 787 ipc_forget_all_active_calls(); 760 788 ipc_wait_for_all_answered_calls();
Note:
See TracChangeset
for help on using the changeset viewer.