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


Ignore:
Timestamp:
2007-11-19T12:20:10Z (17 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
0c09f2b
Parents:
e0bc7fc
Message:

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

File:
1 edited

Legend:

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

    re0bc7fc r2e51969  
    349349/** Make a fast call over IPC, wait for reply and return to user.
    350350 *
    351  * This function can handle only one argument of payload, but is faster than
    352  * the generic function (i.e. sys_ipc_call_sync()).
     351 * This function can handle only three arguments of payload, but is faster than
     352 * the generic function (i.e. sys_ipc_call_sync_slow()).
    353353 *
    354354 * @param phoneid       Phone handle for the call.
    355355 * @param method        Method of the call.
    356356 * @param arg1          Service-defined payload argument.
     357 * @param arg2          Service-defined payload argument.
     358 * @param arg3          Service-defined payload argument.
    357359 * @param data          Address of userspace structure where the reply call will
    358360 *                      be stored.
     
    362364 */
    363365unative_t sys_ipc_call_sync_fast(unative_t phoneid, unative_t method,
    364     unative_t arg1, ipc_data_t *data)
     366    unative_t arg1, unative_t arg2, unative_t arg3, ipc_data_t *data)
    365367{
    366368        call_t call;
     
    373375        IPC_SET_METHOD(call.data, method);
    374376        IPC_SET_ARG1(call.data, arg1);
     377        IPC_SET_ARG2(call.data, arg2);
     378        IPC_SET_ARG3(call.data, arg3);
    375379
    376380        if (!(res = request_preprocess(&call))) {
     
    394398 * @return              Zero on success or an error code.
    395399 */
    396 unative_t sys_ipc_call_sync(unative_t phoneid, ipc_data_t *question,
     400unative_t sys_ipc_call_sync_slow(unative_t phoneid, ipc_data_t *question,
    397401    ipc_data_t *reply)
    398402{
Note: See TracChangeset for help on using the changeset viewer.