Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • kernel/generic/src/ipc/ipc.c

    r228e490 r7e752b2  
    270270 *
    271271 */
    272 void ipc_backsend_err(phone_t *phone, call_t *call, sysarg_t err)
     272void ipc_backsend_err(phone_t *phone, call_t *call, unative_t err)
    273273{
    274274        call->data.phone = phone;
     
    367367               
    368368                call_t *call = ipc_call_alloc(0);
    369                 IPC_SET_IMETHOD(call->data, IPC_M_PHONE_HUNGUP);
     369                IPC_SET_METHOD(call->data, IPC_M_PHONE_HUNGUP);
    370370                call->flags |= IPC_CALL_DISCARD_ANSWER;
    371371                _ipc_call(phone, box, call);
     
    547547                         * disconnected.
    548548                         */
    549                         IPC_SET_IMETHOD(call->data, IPC_M_PHONE_HUNGUP);
     549                        IPC_SET_METHOD(call->data, IPC_M_PHONE_HUNGUP);
    550550                        call->flags |= IPC_CALL_DISCARD_ANSWER;
    551551                        _ipc_call(phone, box, call);
     
    655655                    (call->flags & IPC_CALL_NOTIF));
    656656               
     657                /*
     658                 * Record the receipt of this call in the current task's counter
     659                 * of active calls. IPC_M_PHONE_HUNGUP calls do not contribute
     660                 * to this counter so do not record answers to them either.
     661                 */
     662                if (!(call->flags & IPC_CALL_DISCARD_ANSWER))
     663                        atomic_dec(&TASK->active_calls);
     664               
    657665                ipc_call_free(call);
    658666        }
     
    741749                    " A4:%" PRIun " A5:%" PRIun " Flags:%x\n", call,
    742750                    call->sender->taskid,
    743                     IPC_GET_IMETHOD(call->data), IPC_GET_ARG1(call->data),
     751                    IPC_GET_METHOD(call->data), IPC_GET_ARG1(call->data),
    744752                    IPC_GET_ARG2(call->data), IPC_GET_ARG3(call->data),
    745753                    IPC_GET_ARG4(call->data), IPC_GET_ARG5(call->data),
     
    757765                    " A4:%" PRIun " A5:%" PRIun " Flags:%x\n", call,
    758766                    call->sender->taskid,
    759                     IPC_GET_IMETHOD(call->data), IPC_GET_ARG1(call->data),
     767                    IPC_GET_METHOD(call->data), IPC_GET_ARG1(call->data),
    760768                    IPC_GET_ARG2(call->data), IPC_GET_ARG3(call->data),
    761769                    IPC_GET_ARG4(call->data), IPC_GET_ARG5(call->data),
     
    771779                printf("Callid:%p M:%" PRIun " A1:%" PRIun " A2:%" PRIun
    772780                    " A3:%" PRIun " A4:%" PRIun " A5:%" PRIun " Flags:%x\n",
    773                     call, IPC_GET_IMETHOD(call->data), IPC_GET_ARG1(call->data),
     781                    call, IPC_GET_METHOD(call->data), IPC_GET_ARG1(call->data),
    774782                    IPC_GET_ARG2(call->data), IPC_GET_ARG3(call->data),
    775783                    IPC_GET_ARG4(call->data), IPC_GET_ARG5(call->data),
Note: See TracChangeset for help on using the changeset viewer.