Rev 1359 | Rev 1396 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 1359 | Rev 1364 | ||
---|---|---|---|
Line 466... | Line 466... | ||
466 | } |
466 | } |
467 | 467 | ||
468 | /** Wait for incoming ipc call or answer |
468 | /** Wait for incoming ipc call or answer |
469 | * |
469 | * |
470 | * @param calldata Pointer to buffer where the call/answer data is stored |
470 | * @param calldata Pointer to buffer where the call/answer data is stored |
- | 471 | * @param usec Timeout. See waitq_sleep_timeout() for explanation. |
|
471 | * @param flags |
472 | * @param nonblocking See waitq_sleep_timeout() for explanation. |
- | 473 | * |
|
472 | * @return Callid, if callid & 1, then the call is answer |
474 | * @return Callid, if callid & 1, then the call is answer |
473 | */ |
475 | */ |
474 | __native sys_ipc_wait_for_call(ipc_data_t *calldata, __native flags) |
476 | __native sys_ipc_wait_for_call(ipc_data_t *calldata, __u32 usec, int nonblocking) |
475 | { |
477 | { |
476 | call_t *call; |
478 | call_t *call; |
477 | 479 | ||
478 | restart: |
480 | restart: |
479 | call = ipc_wait_for_call(&TASK->answerbox, flags); |
481 | call = ipc_wait_for_call(&TASK->answerbox, usec, nonblocking); |
480 | if (!call) |
482 | if (!call) |
481 | return 0; |
483 | return 0; |
482 | 484 | ||
483 | if (call->flags & IPC_CALL_NOTIF) { |
485 | if (call->flags & IPC_CALL_NOTIF) { |
484 | ASSERT(! (call->flags & IPC_CALL_STATIC_ALLOC)); |
486 | ASSERT(! (call->flags & IPC_CALL_STATIC_ALLOC)); |