Changeset 645d9ed2 in mainline
- Timestamp:
- 2008-08-24T18:19:21Z (16 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 74965d2
- Parents:
- 088ab05
- Location:
- kernel/generic
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/generic/include/ipc/ipc.h
r088ab05 r645d9ed2 261 261 unative_t args[IPC_CALL_LEN]; 262 262 phone_t *phone; 263 /* 264 * The forward operation can masquerade the caller phone. For those 265 * cases, we must keep it aside so that the answer is processed 266 * correctly. 267 */ 268 phone_t *caller_phone; 263 269 } ipc_data_t; 264 270 -
kernel/generic/src/ipc/ipc.c
r088ab05 r645d9ed2 348 348 spinlock_unlock(&oldbox->lock); 349 349 350 if (mode & IPC_FF_ROUTE_FROM_ME) 350 if (mode & IPC_FF_ROUTE_FROM_ME) { 351 if (!call->data.caller_phone) 352 call->data.caller_phone = call->data.phone; 351 353 call->data.phone = newphone; 354 } 352 355 353 356 return ipc_call(newphone, call); … … 393 396 request = list_get_instance(box->answers.next, call_t, link); 394 397 list_remove(&request->link); 395 atomic_dec(&request->data.phone->active_calls); 398 if (request->data.caller_phone) 399 atomic_dec(&request->data.caller_phone->active_calls); 400 else 401 atomic_dec(&request->data.phone->active_calls); 396 402 } else if (!list_empty(&box->calls)) { 397 403 /* Handle requests */ -
kernel/generic/src/ipc/ipcrsc.c
r088ab05 r645d9ed2 171 171 172 172 spinlock_lock(&TASK->lock); 173 174 173 for (i = 0; i < IPC_MAX_PHONES; i++) { 175 174 if (TASK->phones[i].state == IPC_PHONE_HUNGUP && … … 184 183 spinlock_unlock(&TASK->lock); 185 184 186 if (i >= IPC_MAX_PHONES)185 if (i == IPC_MAX_PHONES) 187 186 return -1; 187 188 188 return i; 189 189 } -
kernel/generic/src/main/kinit.c
r088ab05 r645d9ed2 178 178 cap_set(programs[i].task, CAP_CAP | CAP_MEM_MANAGER | 179 179 CAP_IO_MANAGER | CAP_PREEMPT_CONTROL | CAP_IRQ_REG); 180 181 180 182 181 if (!ipc_phone_0)
Note:
See TracChangeset
for help on using the changeset viewer.