Ignore:
File:
1 edited

Legend:

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

    r4e5dabf rab34cc9  
    111111        switch (imethod) {
    112112        case IPC_M_CONNECTION_CLONE:
    113         case IPC_M_CLONE_ESTABLISH:
     113        case IPC_M_CONNECT_ME:
    114114        case IPC_M_PHONE_HUNGUP:
    115115                /* This message is meant only for the original recipient. */
     
    160160        switch (IPC_GET_IMETHOD(call->data)) {
    161161        case IPC_M_CONNECTION_CLONE:
    162         case IPC_M_CLONE_ESTABLISH:
     162        case IPC_M_CONNECT_ME:
    163163        case IPC_M_CONNECT_TO_ME:
    164164        case IPC_M_CONNECT_ME_TO:
     
    225225                        mutex_unlock(&phone->lock);
    226226                }
    227         } else if (IPC_GET_IMETHOD(*olddata) == IPC_M_CLONE_ESTABLISH) {
     227        } else if (IPC_GET_IMETHOD(*olddata) == IPC_M_CONNECT_ME) {
    228228                phone_t *phone = (phone_t *) IPC_GET_ARG5(*olddata);
    229229               
     
    271271                        irq_spinlock_unlock(&answer->sender->lock, true);
    272272                       
    273                         uintptr_t dst_base = (uintptr_t) -1;
    274273                        int rc = as_area_share(as, IPC_GET_ARG1(*olddata),
    275                             IPC_GET_ARG2(*olddata), AS, IPC_GET_ARG3(*olddata),
    276                             &dst_base, IPC_GET_ARG1(answer->data));
    277                        
    278                         if (rc == EOK)
    279                                 rc = copy_to_uspace((void *) IPC_GET_ARG2(answer->data),
    280                                     &dst_base, sizeof(dst_base));
    281                        
     274                            IPC_GET_ARG2(*olddata), AS,
     275                            IPC_GET_ARG1(answer->data), IPC_GET_ARG3(*olddata));
    282276                        IPC_SET_RETVAL(answer->data, rc);
    283277                        return rc;
    284278                }
    285279        } else if (IPC_GET_IMETHOD(*olddata) == IPC_M_SHARE_IN) {
    286                 if (!IPC_GET_RETVAL(answer->data)) {
     280                if (!IPC_GET_RETVAL(answer->data)) { 
    287281                        irq_spinlock_lock(&answer->sender->lock, true);
    288282                        as_t *as = answer->sender->as;
    289283                        irq_spinlock_unlock(&answer->sender->lock, true);
    290284                       
    291                         uintptr_t dst_base = (uintptr_t) -1;
    292285                        int rc = as_area_share(AS, IPC_GET_ARG1(answer->data),
    293                             IPC_GET_ARG1(*olddata), as, IPC_GET_ARG2(answer->data),
    294                             &dst_base, IPC_GET_ARG3(answer->data));
    295                         IPC_SET_ARG4(answer->data, dst_base);
     286                            IPC_GET_ARG2(*olddata), as, IPC_GET_ARG1(*olddata),
     287                            IPC_GET_ARG2(answer->data));
    296288                        IPC_SET_RETVAL(answer->data, rc);
    297289                }
     
    459451                break;
    460452        }
    461         case IPC_M_CLONE_ESTABLISH:
     453        case IPC_M_CONNECT_ME:
    462454                IPC_SET_ARG5(call->data, (sysarg_t) phone);
    463455                break;
     
    597589        if (IPC_GET_IMETHOD(call->data) == IPC_M_CONNECT_TO_ME) {
    598590                int phoneid = phone_alloc(TASK);
    599                 if (phoneid < 0) {  /* Failed to allocate phone */
     591                if (phoneid < 0) { /* Failed to allocate phone */
    600592                        IPC_SET_RETVAL(call->data, ELIMIT);
    601593                        ipc_answer(box, call);
     
    883875       
    884876        /*
    885          * User space is not allowed to change interface and method of system
     877         * Userspace is not allowed to change interface and method of system
    886878         * methods on forward, allow changing ARG1, ARG2, ARG3 and ARG4 by
    887          * means of imethod, arg1, arg2 and arg3.
     879         * means of method, arg1, arg2 and arg3.
    888880         * If the interface and method is immutable, don't change anything.
    889881         */
     
    897889                        IPC_SET_ARG3(call->data, arg2);
    898890                       
    899                         if (slow)
     891                        if (slow) {
    900892                                IPC_SET_ARG4(call->data, arg3);
    901                        
    902                         /*
    903                          * For system methods we deliberately don't
    904                          * overwrite ARG5.
    905                          */
     893                                /*
     894                                 * For system methods we deliberately don't
     895                                 * overwrite ARG5.
     896                                 */
     897                        }
    906898                } else {
    907899                        IPC_SET_IMETHOD(call->data, imethod);
     
    11931185 *
    11941186 */
    1195 sysarg_t sys_irq_register(inr_t inr, devno_t devno, sysarg_t imethod,
     1187sysarg_t sys_register_irq(inr_t inr, devno_t devno, sysarg_t imethod,
    11961188    irq_code_t *ucode)
    11971189{
     
    12101202 *
    12111203 */
    1212 sysarg_t sys_irq_unregister(inr_t inr, devno_t devno)
     1204sysarg_t sys_unregister_irq(inr_t inr, devno_t devno)
    12131205{
    12141206        if (!(cap_get(TASK) & CAP_IRQ_REG))
Note: See TracChangeset for help on using the changeset viewer.