Changeset 850235d in mainline for kernel/generic/src/proc
- Timestamp:
- 2013-03-10T14:56:21Z (13 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 05bab88
- Parents:
- ea906c29 (diff), 2277e03 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the(diff)links above to see all the changes relative to each parent. - Location:
- kernel/generic/src/proc
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/generic/src/proc/program.c
rea906c29 r850235d 79 79 * Create the stack address space area. 80 80 */ 81 uintptr_t virt = USTACK_ADDRESS; 81 uintptr_t virt = (uintptr_t) -1; 82 uintptr_t bound = USER_ADDRESS_SPACE_END - (STACK_SIZE_USER - 1); 83 84 /* Adjust bound to create space for the desired guard page. */ 85 bound -= PAGE_SIZE; 86 82 87 as_area_t *area = as_area_create(as, 83 AS_AREA_READ | AS_AREA_WRITE | AS_AREA_CACHEABLE, 84 STACK_SIZE, AS_AREA_ATTR_NONE, &anon_backend, NULL, &virt, 0); 88 AS_AREA_READ | AS_AREA_WRITE | AS_AREA_CACHEABLE | AS_AREA_GUARD | 89 AS_AREA_LATE_RESERVE, STACK_SIZE_USER, AS_AREA_ATTR_NONE, 90 &anon_backend, NULL, &virt, bound); 85 91 if (!area) { 86 92 task_destroy(prg->task); … … 93 99 kernel_uarg->uspace_entry = (void *) entry_addr; 94 100 kernel_uarg->uspace_stack = (void *) virt; 95 kernel_uarg->uspace_stack_size = STACK_SIZE ;101 kernel_uarg->uspace_stack_size = STACK_SIZE_USER; 96 102 kernel_uarg->uspace_thread_function = NULL; 97 103 kernel_uarg->uspace_thread_arg = NULL; -
kernel/generic/src/proc/scheduler.c
rea906c29 r850235d 92 92 else 93 93 fpu_disable(); 94 #el se94 #elif defined CONFIG_FPU 95 95 fpu_enable(); 96 96 if (THREAD->fpu_context_exists) … … 327 327 THREAD->kcycles += get_cycle() - THREAD->last_cycle; 328 328 329 #if ndef CONFIG_FPU_LAZY329 #if (defined CONFIG_FPU) && (!defined CONFIG_FPU_LAZY) 330 330 fpu_context_save(THREAD->saved_fpu_context); 331 331 #endif -
kernel/generic/src/proc/task.c
rea906c29 r850235d 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 or 133 * it will never finish cleanup. 134 */ 135 task_release(task_0); 136 } 127 137 128 138 /* Repeat until there are any tasks except TASK */ … … 196 206 task->ucycles = 0; 197 207 task->kcycles = 0; 198 208 199 209 task->ipc_info.call_sent = 0; 200 210 task->ipc_info.call_received = 0;
Note:
See TracChangeset
for help on using the changeset viewer.
