Changeset 3209923 in mainline for kernel/generic/src/ipc/sysipc.c


Ignore:
Timestamp:
2007-11-20T09:12:49Z (18 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
b74959bd
Parents:
bc50fc42
Message:

Modify asynchronous IPC to make use of all six syscall arguments. The preferred
means of asynchronous communication is now via the set of ipc_call_async_m()
macros, where m is the number of payload arguments passed to the kernel. These
macros will automatically decide between the fast and the universal slow version
of ipc_call_async.

File:
1 edited

Legend:

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

    rbc50fc42 r3209923  
    445445/** Make a fast asynchronous call over IPC.
    446446 *
    447  * This function can only handle two arguments of payload, but is faster than
    448  * the generic function sys_ipc_call_async().
     447 * This function can only handle four arguments of payload, but is faster than
     448 * the generic function sys_ipc_call_async_slow().
    449449 *
    450450 * @param phoneid       Phone handle for the call.
     
    452452 * @param arg1          Service-defined payload argument.
    453453 * @param arg2          Service-defined payload argument.
     454 * @param arg3          Service-defined payload argument.
     455 * @param arg4          Service-defined payload argument.
    454456 *
    455457 * @return              Return call hash on success.
     
    459461 */
    460462unative_t sys_ipc_call_async_fast(unative_t phoneid, unative_t method,
    461     unative_t arg1, unative_t arg2)
     463    unative_t arg1, unative_t arg2, unative_t arg3, unative_t arg4)
    462464{
    463465        call_t *call;
     
    474476        IPC_SET_ARG1(call->data, arg1);
    475477        IPC_SET_ARG2(call->data, arg2);
    476         IPC_SET_ARG3(call->data, 0);
     478        IPC_SET_ARG3(call->data, arg3);
     479        IPC_SET_ARG4(call->data, arg4);
    477480
    478481        if (!(res = request_preprocess(call)))
     
    491494 * @return              See sys_ipc_call_async_fast().
    492495 */
    493 unative_t sys_ipc_call_async(unative_t phoneid, ipc_data_t *data)
     496unative_t sys_ipc_call_async_slow(unative_t phoneid, ipc_data_t *data)
    494497{
    495498        call_t *call;
Note: See TracChangeset for help on using the changeset viewer.