Changeset b74959bd in mainline for kernel


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

Modify ipc_answer_*() to make use of all six syscall arguments. The recommended
means of answering calls is via the ipc_answer_m() macros (where m denotes the
number of return arguments) that automatically decide between the fast register
version or the slow universal version of ipc_answer().

Location:
kernel/generic
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • kernel/generic/include/ipc/sysipc.h

    r3209923 rb74959bd  
    4848unative_t sys_ipc_call_async_slow(unative_t phoneid, ipc_data_t *data);
    4949unative_t sys_ipc_answer_fast(unative_t callid, unative_t retval,
    50     unative_t arg1, unative_t arg2);
    51 unative_t sys_ipc_answer(unative_t callid, ipc_data_t *data);
     50    unative_t arg1, unative_t arg2, unative_t arg3, unative_t arg4);
     51unative_t sys_ipc_answer_slow(unative_t callid, ipc_data_t *data);
    5252unative_t sys_ipc_wait_for_call(ipc_data_t *calldata, uint32_t usec,
    5353    int nonblocking);
  • kernel/generic/include/syscall/syscall.h

    r3209923 rb74959bd  
    5353        SYS_IPC_CALL_ASYNC_SLOW,
    5454        SYS_IPC_ANSWER_FAST,
    55         SYS_IPC_ANSWER,
     55        SYS_IPC_ANSWER_SLOW,
    5656        SYS_IPC_FORWARD_FAST,
    5757        SYS_IPC_WAIT,
  • kernel/generic/src/ipc/sysipc.c

    r3209923 rb74959bd  
    593593 * @param arg1          Service-defined return value.
    594594 * @param arg2          Service-defined return value.
     595 * @param arg3          Service-defined return value.
     596 * @param arg4          Service-defined return value.
    595597 *
    596598 * @return              Return 0 on success, otherwise return an error code.   
    597599 */
    598600unative_t sys_ipc_answer_fast(unative_t callid, unative_t retval,
    599     unative_t arg1, unative_t arg2)
     601    unative_t arg1, unative_t arg2, unative_t arg3, unative_t arg4)
    600602{
    601603        call_t *call;
     
    620622        IPC_SET_ARG1(call->data, arg1);
    621623        IPC_SET_ARG2(call->data, arg2);
     624        IPC_SET_ARG3(call->data, arg3);
     625        IPC_SET_ARG4(call->data, arg4);
    622626        rc = answer_preprocess(call, saveddata ? &saved_data : NULL);
    623627
     
    633637 * @return              Return 0 on success, otherwise return an error code.
    634638 */
    635 unative_t sys_ipc_answer(unative_t callid, ipc_data_t *data)
     639unative_t sys_ipc_answer_slow(unative_t callid, ipc_data_t *data)
    636640{
    637641        call_t *call;
  • kernel/generic/src/syscall/syscall.c

    r3209923 rb74959bd  
    138138        (syshandler_t) sys_ipc_call_async_slow,
    139139        (syshandler_t) sys_ipc_answer_fast,
    140         (syshandler_t) sys_ipc_answer,
     140        (syshandler_t) sys_ipc_answer_slow,
    141141        (syshandler_t) sys_ipc_forward_fast,
    142142        (syshandler_t) sys_ipc_wait_for_call,
Note: See TracChangeset for help on using the changeset viewer.