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 | ||