Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • kernel/generic/src/proc/program.c

    rf8b69a1e rf8fb03b  
    4949#include <lib/elf_load.h>
    5050#include <str.h>
    51 #include <str_error.h>
    5251#include <log.h>
    5352#include <syscall/copy.h>
     
    9998        if (!area) {
    10099                free(kernel_uarg);
    101                 task_release(prg->task);
     100                task_destroy(prg->task);
    102101                prg->task = NULL;
    103102                return ENOMEM;
     
    119118                free(kernel_uarg);
    120119                as_area_destroy(as, virt);
    121                 task_release(prg->task);
     120                task_destroy(prg->task);
    122121                prg->task = NULL;
    123122                return ELIMIT;
     
    143142 *
    144143 */
    145 errno_t program_create_from_image(void *image_addr, size_t image_size, char *name, program_t *prg)
     144errno_t program_create_from_image(void *image_addr, char *name, program_t *prg)
    146145{
    147146        as_t *as = as_create(0);
     
    157156        }
    158157
    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,
    160159            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;
    169160}
    170161
     
    212203void program_ready(program_t *prg)
    213204{
    214         thread_start(prg->main_thread);
    215         thread_detach(prg->main_thread);
    216         prg->main_thread = NULL;
     205        thread_ready(prg->main_thread);
    217206}
    218207
     
    252241        program_ready(&prg);
    253242
    254         task_release(prg.task);
    255 
    256243        return EOK;
    257244}
Note: See TracChangeset for help on using the changeset viewer.