Subversion Repositories HelenOS

Rev

Rev 2618 | Rev 2620 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 2618 Rev 2619
Line 590... Line 590...
590
 *
590
 *
591
 * @param callid    Hash of the call to be answered.
591
 * @param callid    Hash of the call to be answered.
592
 * @param retval    Return value of the answer.
592
 * @param retval    Return value of the answer.
593
 * @param arg1      Service-defined return value.
593
 * @param arg1      Service-defined return value.
594
 * @param arg2      Service-defined return value.
594
 * @param arg2      Service-defined return value.
-
 
595
 * @param arg3      Service-defined return value.
-
 
596
 * @param arg4      Service-defined return value.
595
 *
597
 *
596
 * @return      Return 0 on success, otherwise return an error code.   
598
 * @return      Return 0 on success, otherwise return an error code.   
597
 */
599
 */
598
unative_t sys_ipc_answer_fast(unative_t callid, unative_t retval,
600
unative_t sys_ipc_answer_fast(unative_t callid, unative_t retval,
599
    unative_t arg1, unative_t arg2)
601
    unative_t arg1, unative_t arg2, unative_t arg3, unative_t arg4)
600
{
602
{
601
    call_t *call;
603
    call_t *call;
602
    ipc_data_t saved_data;
604
    ipc_data_t saved_data;
603
    int saveddata = 0;
605
    int saveddata = 0;
604
    int rc;
606
    int rc;
Line 617... Line 619...
617
    }
619
    }
618
 
620
 
619
    IPC_SET_RETVAL(call->data, retval);
621
    IPC_SET_RETVAL(call->data, retval);
620
    IPC_SET_ARG1(call->data, arg1);
622
    IPC_SET_ARG1(call->data, arg1);
621
    IPC_SET_ARG2(call->data, arg2);
623
    IPC_SET_ARG2(call->data, arg2);
-
 
624
    IPC_SET_ARG3(call->data, arg3);
-
 
625
    IPC_SET_ARG4(call->data, arg4);
622
    rc = answer_preprocess(call, saveddata ? &saved_data : NULL);
626
    rc = answer_preprocess(call, saveddata ? &saved_data : NULL);
623
 
627
 
624
    ipc_answer(&TASK->answerbox, call);
628
    ipc_answer(&TASK->answerbox, call);
625
    return rc;
629
    return rc;
626
}
630
}
Line 630... Line 634...
630
 * @param callid    Hash of the call to be answered.
634
 * @param callid    Hash of the call to be answered.
631
 * @param data      Userspace address of call data with the answer.
635
 * @param data      Userspace address of call data with the answer.
632
 *
636
 *
633
 * @return      Return 0 on success, otherwise return an error code.
637
 * @return      Return 0 on success, otherwise return an error code.
634
 */
638
 */
635
unative_t sys_ipc_answer(unative_t callid, ipc_data_t *data)
639
unative_t sys_ipc_answer_slow(unative_t callid, ipc_data_t *data)
636
{
640
{
637
    call_t *call;
641
    call_t *call;
638
    ipc_data_t saved_data;
642
    ipc_data_t saved_data;
639
    int saveddata = 0;
643
    int saveddata = 0;
640
    int rc;
644
    int rc;