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


Ignore:
Timestamp:
2007-12-02T20:00:14Z (18 years ago)
Author:
Josef Cejka <malyzelenyhnus@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
90c35436
Parents:
8df2eab
Message:

Function ipc_connect_me_to sends 3 user defined arguments now.
One argument added also to ipc_forward_fast.
Fixed devmap and improved its test.

File:
1 edited

Legend:

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

    r8df2eab rb61d47d  
    192192                /* If the users accepted call, connect */
    193193                if (!IPC_GET_RETVAL(answer->data)) {
    194                         ipc_phone_connect((phone_t *) IPC_GET_ARG3(*olddata),
     194                        ipc_phone_connect((phone_t *) IPC_GET_ARG5(*olddata),
    195195                            &TASK->answerbox);
    196196                }
     
    271271                        return ELIMIT;
    272272                /* Set arg3 for server */
    273                 IPC_SET_ARG3(call->data, (unative_t) &TASK->phones[newphid]);
     273                IPC_SET_ARG5(call->data, (unative_t) &TASK->phones[newphid]);
    274274                call->flags |= IPC_CALL_CONN_ME_TO;
    275275                call->priv = newphid;
     
    319319                        phone_dealloc(call->priv);
    320320                else
    321                         IPC_SET_ARG3(call->data, call->priv);
     321                        IPC_SET_ARG5(call->data, call->priv);
    322322        }
    323323}
     
    553553 */
    554554unative_t sys_ipc_forward_fast(unative_t callid, unative_t phoneid,
    555     unative_t method, unative_t arg1, int mode)
     555    unative_t method, unative_t arg1, unative_t arg2, int mode)
    556556{
    557557        call_t *call;
     
    578578        /*
    579579         * Userspace is not allowed to change method of system methods on
    580          * forward, allow changing ARG1 and ARG2 by means of method and arg1.
     580         * forward, allow changing ARG1, ARG2 and ARG3 by means of method,
     581         * arg1 and arg2.
    581582         * If the method is immutable, don't change anything.
    582583         */
     
    584585                if (method_is_system(IPC_GET_METHOD(call->data))) {
    585586                        if (IPC_GET_METHOD(call->data) == IPC_M_CONNECT_TO_ME)
    586                                 phone_dealloc(IPC_GET_ARG3(call->data));
     587                                phone_dealloc(IPC_GET_ARG5(call->data));
    587588
    588589                        IPC_SET_ARG1(call->data, method);
    589590                        IPC_SET_ARG2(call->data, arg1);
     591                        IPC_SET_ARG3(call->data, arg2);
    590592                } else {
    591593                        IPC_SET_METHOD(call->data, method);
    592594                        IPC_SET_ARG1(call->data, arg1);
     595                        IPC_SET_ARG2(call->data, arg2);
    593596                }
    594597        }
Note: See TracChangeset for help on using the changeset viewer.