Subversion Repositories HelenOS

Rev

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

Rev 3492 Rev 3665
Line 453... Line 453...
453
     */
453
     */
454
    IPC_SET_ARG4(call.data, 0);
454
    IPC_SET_ARG4(call.data, 0);
455
    IPC_SET_ARG5(call.data, 0);
455
    IPC_SET_ARG5(call.data, 0);
456
 
456
 
457
    if (!(res = request_preprocess(&call, phone))) {
457
    if (!(res = request_preprocess(&call, phone))) {
-
 
458
#ifdef CONFIG_UDEBUG
-
 
459
        udebug_stoppable_begin();
-
 
460
#endif
458
        rc = ipc_call_sync(phone, &call);
461
        rc = ipc_call_sync(phone, &call);
-
 
462
#ifdef CONFIG_UDEBUG
-
 
463
        udebug_stoppable_end();
-
 
464
#endif
459
        if (rc != EOK)
465
        if (rc != EOK)
460
            return rc;
466
            return rc;
461
        process_answer(&call);
467
        process_answer(&call);
-
 
468
 
462
    } else {
469
    } else {
463
        IPC_SET_RETVAL(call.data, res);
470
        IPC_SET_RETVAL(call.data, res);
464
    }
471
    }
465
    rc = STRUCT_TO_USPACE(&data->args, &call.data.args);
472
    rc = STRUCT_TO_USPACE(&data->args, &call.data.args);
466
    if (rc != 0)
473
    if (rc != 0)
Line 493... Line 500...
493
        return (unative_t) rc;
500
        return (unative_t) rc;
494
 
501
 
495
    GET_CHECK_PHONE(phone, phoneid, return ENOENT);
502
    GET_CHECK_PHONE(phone, phoneid, return ENOENT);
496
 
503
 
497
    if (!(res = request_preprocess(&call, phone))) {
504
    if (!(res = request_preprocess(&call, phone))) {
-
 
505
#ifdef CONFIG_UDEBUG
-
 
506
        udebug_stoppable_begin();
-
 
507
#endif
498
        rc = ipc_call_sync(phone, &call);
508
        rc = ipc_call_sync(phone, &call);
-
 
509
#ifdef CONFIG_UDEBUG
-
 
510
        udebug_stoppable_end();
-
 
511
#endif
499
        if (rc != EOK)
512
        if (rc != EOK)
500
            return rc;
513
            return rc;
501
        process_answer(&call);
514
        process_answer(&call);
502
    } else
515
    } else
503
        IPC_SET_RETVAL(call.data, res);
516
        IPC_SET_RETVAL(call.data, res);
Line 796... Line 809...
796
 */
809
 */
797
unative_t sys_ipc_wait_for_call(ipc_data_t *calldata, uint32_t usec, int flags)
810
unative_t sys_ipc_wait_for_call(ipc_data_t *calldata, uint32_t usec, int flags)
798
{
811
{
799
    call_t *call;
812
    call_t *call;
800
 
813
 
801
restart:   
814
restart:
-
 
815
 
-
 
816
#ifdef CONFIG_UDEBUG
-
 
817
    udebug_stoppable_begin();
-
 
818
#endif  
802
    call = ipc_wait_for_call(&TASK->answerbox, usec,
819
    call = ipc_wait_for_call(&TASK->answerbox, usec,
803
        flags | SYNCH_FLAGS_INTERRUPTIBLE);
820
        flags | SYNCH_FLAGS_INTERRUPTIBLE);
-
 
821
 
-
 
822
#ifdef CONFIG_UDEBUG
-
 
823
    udebug_stoppable_end();
-
 
824
#endif
804
    if (!call)
825
    if (!call)
805
        return 0;
826
        return 0;
806
 
827
 
807
    if (call->flags & IPC_CALL_NOTIF) {
828
    if (call->flags & IPC_CALL_NOTIF) {
808
        ASSERT(! (call->flags & IPC_CALL_STATIC_ALLOC));
829
        ASSERT(! (call->flags & IPC_CALL_STATIC_ALLOC));