Changeset d73942c in mainline for libipc/generic/ipc.c


Ignore:
Timestamp:
2006-03-15T11:45:03Z (19 years ago)
Author:
Ondrej Palkovsky <ondrap@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
55cff86
Parents:
936351c1
Message:

Added support for taskid source identification.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • libipc/generic/ipc.c

    r936351c1 rd73942c  
    8383        IPC_SET_ARG3(data, arg3);
    8484
    85         callres = __SYSCALL2(SYS_IPC_CALL_SYNC, phoneid, (sysarg_t)&data);
     85        callres = __SYSCALL3(SYS_IPC_CALL_SYNC, phoneid, (sysarg_t)&data,
     86                             (sysarg_t)&data);
    8687        if (callres)
    8788                return callres;
     
    122123        if (callid == IPC_CALLRET_FATAL) {
    123124                /* Call asynchronous handler with error code */
    124                 IPC_SET_RETVAL(call->u.msg.data, ENOENT);
    125125                callback(private, ENOENT, NULL);
    126126                free(call);
     
    151151                ipcarg_t arg2)
    152152{
    153         __SYSCALL4(SYS_IPC_ANSWER, callid, retval, arg1, arg2);
     153        __SYSCALL4(SYS_IPC_ANSWER_FAST, callid, retval, arg1, arg2);
    154154}
    155155
    156156
    157157/** Call syscall function sys_ipc_wait_for_call */
    158 static inline ipc_callid_t _ipc_wait_for_call(ipc_data_t *data, int flags)
    159 {
    160         return __SYSCALL2(SYS_IPC_WAIT, (sysarg_t)data, flags);
     158static inline ipc_callid_t _ipc_wait_for_call(ipc_call_t *call, int flags)
     159{
     160        return __SYSCALL3(SYS_IPC_WAIT, (sysarg_t)&call->data,
     161                          (sysarg_t)&call->taskid, flags);
    161162}
    162163
     
    221222 *         IPC_WAIT_NONBLOCKING
    222223 */
    223 int ipc_wait_for_call(ipc_data_t *data, int flags)
     224int ipc_wait_for_call(ipc_call_t *call, int flags)
    224225{
    225226        ipc_callid_t callid;
     
    228229                try_dispatch_queued_calls();
    229230
    230                 callid = _ipc_wait_for_call(data, flags);
     231                callid = _ipc_wait_for_call(call, flags);
    231232                /* Handle received answers */
    232233                if (callid & IPC_CALLID_ANSWERED)
    233                         handle_answer(callid, data);
     234                        handle_answer(callid, &call->data);
    234235        } while (callid & IPC_CALLID_ANSWERED);
    235236
Note: See TracChangeset for help on using the changeset viewer.