Changes in / [9ad289d:3acd1bb] in mainline
- Files:
-
- 1 deleted
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/arch/amd64/include/istate.h
r9ad289d r3acd1bb 66 66 } istate_t; 67 67 68 #define RPL_USER 369 70 68 /** Return true if exception happened while in userspace */ 71 69 NO_TRACE static inline int istate_from_uspace(istate_t *istate) 72 70 { 73 return (istate->cs & RPL_USER) == RPL_USER;71 return !(istate->rip & UINT64_C(0x8000000000000000)); 74 72 } 75 73 -
kernel/arch/ia32/include/istate.h
r9ad289d r3acd1bb 68 68 } istate_t; 69 69 70 #define RPL_USER 371 72 70 /** Return true if exception happened while in userspace */ 73 71 NO_TRACE static inline int istate_from_uspace(istate_t *istate) 74 72 { 75 return (istate->cs & RPL_USER) == RPL_USER;73 return !(istate->eip & UINT32_C(0x80000000)); 76 74 } 77 75 -
kernel/generic/src/main/kinit.c
r9ad289d r3acd1bb 250 250 CAP_IO_MANAGER | CAP_IRQ_REG); 251 251 252 if (!ipc_phone_0) {252 if (!ipc_phone_0) 253 253 ipc_phone_0 = &programs[i].task->answerbox; 254 /*255 * Hold the first task so that the256 * ipc_phone_0 remains a valid pointer257 * even if the first task exits for258 * whatever reason.259 */260 task_hold(programs[i].task);261 }262 254 } 263 255 -
kernel/generic/src/proc/task.c
r9ad289d r3acd1bb 125 125 { 126 126 size_t tasks_left; 127 128 if (ipc_phone_0) {129 task_t *task_0 = ipc_phone_0->task;130 ipc_phone_0 = NULL;131 /*132 * The first task is held by kinit(), we need to release it or133 * it will never finish cleanup.134 */135 task_release(task_0);136 }137 127 138 128 /* Repeat until there are any tasks except TASK */
Note:
See TracChangeset
for help on using the changeset viewer.