Subversion Repositories HelenOS

Compare Revisions

Ignore whitespace Rev 2619 → Rev 2620

/trunk/uspace/lib/libc/generic/ipc.c
320,6 → 320,11
IPC_SET_ARG2(call->u.msg.data, arg2);
IPC_SET_ARG3(call->u.msg.data, arg3);
IPC_SET_ARG4(call->u.msg.data, arg4);
/*
* To achieve deterministic behavior, we always zero out the
* arguments that are beyond the limits of the fast version.
*/
IPC_SET_ARG5(call->u.msg.data, 0);
}
ipc_finish_async(callid, phoneid, call, can_preempt);
}
435,7 → 440,8
futex_down(&async_futex);
while (!list_empty(&queued_calls)) {
call = list_get_instance(queued_calls.next, async_call_t, list);
callid = _ipc_call_async(call->u.msg.phoneid, &call->u.msg.data);
callid = _ipc_call_async(call->u.msg.phoneid,
&call->u.msg.data);
if (callid == IPC_CALLRET_TEMPORARY) {
break;
}
645,9 → 651,11
*
* For non-system methods, the old method and arg1 are rewritten by the new
* values. For system methods, the new method and arg1 are written to the old
* arg1 and arg2, respectivelly.
* arg1 and arg2, respectivelly. Calls with immutable methods are forwarded
* verbatim.
*/
int ipc_forward_fast(ipc_callid_t callid, int phoneid, int method, ipcarg_t arg1)
int ipc_forward_fast(ipc_callid_t callid, int phoneid, int method,
ipcarg_t arg1)
{
return __SYSCALL4(SYS_IPC_FORWARD_FAST, callid, phoneid, method, arg1);
}