Subversion Repositories HelenOS

Rev

Rev 2071 | Rev 2359 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 2071 Rev 2098
Line 192... Line 192...
192
        if (newphid < 0)
192
        if (newphid < 0)
193
            return ELIMIT;
193
            return ELIMIT;
194
        /* Set arg3 for server */
194
        /* Set arg3 for server */
195
        IPC_SET_ARG3(call->data, (unative_t)&TASK->phones[newphid]);
195
        IPC_SET_ARG3(call->data, (unative_t)&TASK->phones[newphid]);
196
        call->flags |= IPC_CALL_CONN_ME_TO;
196
        call->flags |= IPC_CALL_CONN_ME_TO;
197
        call->private = newphid;
197
        call->priv = newphid;
198
        break;
198
        break;
199
    case IPC_M_AS_AREA_SEND:
199
    case IPC_M_AS_AREA_SEND:
200
        size = as_get_size(IPC_GET_ARG1(call->data));
200
        size = as_get_size(IPC_GET_ARG1(call->data));
201
        if (!size) {
201
        if (!size) {
202
            return EPERM;
202
            return EPERM;
Line 221... Line 221...
221
        call->flags & IPC_CALL_FORWARDED)
221
        call->flags & IPC_CALL_FORWARDED)
222
        IPC_SET_RETVAL(call->data, EFORWARD);
222
        IPC_SET_RETVAL(call->data, EFORWARD);
223
 
223
 
224
    if (call->flags & IPC_CALL_CONN_ME_TO) {
224
    if (call->flags & IPC_CALL_CONN_ME_TO) {
225
        if (IPC_GET_RETVAL(call->data))
225
        if (IPC_GET_RETVAL(call->data))
226
            phone_dealloc(call->private);
226
            phone_dealloc(call->priv);
227
        else
227
        else
228
            IPC_SET_ARG3(call->data, call->private);
228
            IPC_SET_ARG3(call->data, call->priv);
229
    }
229
    }
230
}
230
}
231
 
231
 
232
/** Do basic kernel processing of received call request
232
/** Do basic kernel processing of received call request
233
 *
233
 *
Line 525... Line 525...
525
 
525
 
526
    if (call->flags & IPC_CALL_NOTIF) {
526
    if (call->flags & IPC_CALL_NOTIF) {
527
        ASSERT(! (call->flags & IPC_CALL_STATIC_ALLOC));
527
        ASSERT(! (call->flags & IPC_CALL_STATIC_ALLOC));
528
 
528
 
529
        /* Set in_phone_hash to the interrupt counter */
529
        /* Set in_phone_hash to the interrupt counter */
530
        call->data.phone = (void *)call->private;
530
        call->data.phone = (void *) call->priv;
531
       
531
       
532
        STRUCT_TO_USPACE(calldata, &call->data);
532
        STRUCT_TO_USPACE(calldata, &call->data);
533
 
533
 
534
        ipc_call_free(call);
534
        ipc_call_free(call);
535
       
535