Changes in kernel/generic/src/proc/program.c [f8b69a1e:f8fb03b] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/generic/src/proc/program.c
rf8b69a1e rf8fb03b 49 49 #include <lib/elf_load.h> 50 50 #include <str.h> 51 #include <str_error.h>52 51 #include <log.h> 53 52 #include <syscall/copy.h> … … 99 98 if (!area) { 100 99 free(kernel_uarg); 101 task_ release(prg->task);100 task_destroy(prg->task); 102 101 prg->task = NULL; 103 102 return ENOMEM; … … 119 118 free(kernel_uarg); 120 119 as_area_destroy(as, virt); 121 task_ release(prg->task);120 task_destroy(prg->task); 122 121 prg->task = NULL; 123 122 return ELIMIT; … … 143 142 * 144 143 */ 145 errno_t program_create_from_image(void *image_addr, size_t image_size,char *name, program_t *prg)144 errno_t program_create_from_image(void *image_addr, char *name, program_t *prg) 146 145 { 147 146 as_t *as = as_create(0); … … 157 156 } 158 157 159 errno_t rc =program_create(as, ((elf_header_t *) image_addr)->e_entry,158 return program_create(as, ((elf_header_t *) image_addr)->e_entry, 160 159 name, prg); 161 162 if (rc == EOK) {163 prg->task->debug_sections = calloc(1, sizeof(debug_sections_t));164 if (prg->task->debug_sections != NULL)165 *prg->task->debug_sections = get_debug_sections(image_addr, image_size);166 }167 168 return rc;169 160 } 170 161 … … 212 203 void program_ready(program_t *prg) 213 204 { 214 thread_start(prg->main_thread); 215 thread_detach(prg->main_thread); 216 prg->main_thread = NULL; 205 thread_ready(prg->main_thread); 217 206 } 218 207 … … 252 241 program_ready(&prg); 253 242 254 task_release(prg.task);255 256 243 return EOK; 257 244 }
Note:
See TracChangeset
for help on using the changeset viewer.