Subversion Repositories HelenOS

Compare Revisions

Ignore whitespace Rev 2621 → Rev 2622

/trunk/kernel/generic/src/ipc/sysipc.c
537,6 → 537,7
* @param phoneid Phone handle to use for forwarding.
* @param method New method to use for the forwarded call.
* @param arg1 New value of the first argument for the forwarded call.
* @param mode Flags that specify mode of the forward operation.
*
* @return Return 0 on succes, otherwise return an error code.
*
546,11 → 547,12
* respectively. Also note there is a set of immutable methods, for which the
* new method and argument is not set and these values are ignored.
*
* Warning: If implementing non-fast version, make sure that
* ARG3 is not rewritten for certain system IPC
* Warning: When implementing support for changing additional payload
* arguments, make sure that ARG3 is not rewritten for certain
* system IPC
*/
unative_t sys_ipc_forward_fast(unative_t callid, unative_t phoneid,
unative_t method, unative_t arg1)
unative_t method, unative_t arg1, int mode)
{
call_t *call;
phone_t *phone;
591,7 → 593,7
}
}
 
return ipc_forward(call, phone, &TASK->answerbox);
return ipc_forward(call, phone, &TASK->answerbox, mode);
}
 
/** Answer an IPC call - fast version.
/trunk/kernel/generic/src/ipc/ipc.c
329,6 → 329,7
* @param call Call structure to be redirected.
* @param newphone Phone structure to target answerbox.
* @param oldbox Old answerbox structure.
* @param mode Flags that specify mode of the forward operation.
*
* @return Return 0 if forwarding succeeded or an error code if
* there was error.
336,7 → 337,7
* The return value serves only as an information for the forwarder,
* the original caller is notified automatically with EFORWARD.
*/
int ipc_forward(call_t *call, phone_t *newphone, answerbox_t *oldbox)
int ipc_forward(call_t *call, phone_t *newphone, answerbox_t *oldbox, int mode)
{
spinlock_lock(&oldbox->lock);
list_remove(&call->link);