Rev 2620 | Rev 2635 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 2620 | Rev 2622 | ||
---|---|---|---|
Line 535... | Line 535... | ||
535 | * |
535 | * |
536 | * @param callid Hash of the call to forward. |
536 | * @param callid Hash of the call to forward. |
537 | * @param phoneid Phone handle to use for forwarding. |
537 | * @param phoneid Phone handle to use for forwarding. |
538 | * @param method New method to use for the forwarded call. |
538 | * @param method New method to use for the forwarded call. |
539 | * @param arg1 New value of the first argument for the forwarded call. |
539 | * @param arg1 New value of the first argument for the forwarded call. |
- | 540 | * @param mode Flags that specify mode of the forward operation. |
|
540 | * |
541 | * |
541 | * @return Return 0 on succes, otherwise return an error code. |
542 | * @return Return 0 on succes, otherwise return an error code. |
542 | * |
543 | * |
543 | * In case the original method is a system method, ARG1 and ARG2 are overwritten |
544 | * In case the original method is a system method, ARG1 and ARG2 are overwritten |
544 | * in the forwarded message with the new method and the new arg1, respectively. |
545 | * in the forwarded message with the new method and the new arg1, respectively. |
545 | * Otherwise the METHOD and ARG1 are rewritten with the new method and arg1, |
546 | * Otherwise the METHOD and ARG1 are rewritten with the new method and arg1, |
546 | * respectively. Also note there is a set of immutable methods, for which the |
547 | * respectively. Also note there is a set of immutable methods, for which the |
547 | * new method and argument is not set and these values are ignored. |
548 | * new method and argument is not set and these values are ignored. |
548 | * |
549 | * |
549 | * Warning: If implementing non-fast version, make sure that |
550 | * Warning: When implementing support for changing additional payload |
550 | * ARG3 is not rewritten for certain system IPC |
551 | * arguments, make sure that ARG3 is not rewritten for certain |
- | 552 | * system IPC |
|
551 | */ |
553 | */ |
552 | unative_t sys_ipc_forward_fast(unative_t callid, unative_t phoneid, |
554 | unative_t sys_ipc_forward_fast(unative_t callid, unative_t phoneid, |
553 | unative_t method, unative_t arg1) |
555 | unative_t method, unative_t arg1, int mode) |
554 | { |
556 | { |
555 | call_t *call; |
557 | call_t *call; |
556 | phone_t *phone; |
558 | phone_t *phone; |
557 | 559 | ||
558 | call = get_call(callid); |
560 | call = get_call(callid); |
Line 589... | Line 591... | ||
589 | IPC_SET_METHOD(call->data, method); |
591 | IPC_SET_METHOD(call->data, method); |
590 | IPC_SET_ARG1(call->data, arg1); |
592 | IPC_SET_ARG1(call->data, arg1); |
591 | } |
593 | } |
592 | } |
594 | } |
593 | 595 | ||
594 | return ipc_forward(call, phone, &TASK->answerbox); |
596 | return ipc_forward(call, phone, &TASK->answerbox, mode); |
595 | } |
597 | } |
596 | 598 | ||
597 | /** Answer an IPC call - fast version. |
599 | /** Answer an IPC call - fast version. |
598 | * |
600 | * |
599 | * This function can handle only two return arguments of payload, but is faster |
601 | * This function can handle only two return arguments of payload, but is faster |