Ignore:
File:
1 edited

Legend:

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

    rf35749e r455241b  
    11/*
    2  * Copyright (c) 2025 Jiri Svoboda
    32 * Copyright (c) 2010 Jakub Jermar
     3 * Copyright (c) 2018 Jiri Svoboda
    44 * All rights reserved.
    55 *
     
    104104 *
    105105 */
    106 void task_done(task_t *cur_task)
     106void task_done(void)
    107107{
    108108        size_t tasks_left;
     
    112112                task_t *task_0 = ipc_box_0->task;
    113113                ipc_box_0 = NULL;
    114 
    115114                /*
    116115                 * The first task is held by kinit(), we need to release it or
     
    130129                task = task_first();
    131130                while (task != NULL) {
    132                         if (task != cur_task) {
     131                        if (task != TASK) {
    133132                                tasks_left++;
    134133#ifdef CONFIG_DEBUG
     
    202201                return NULL;
    203202
     203        if (caps_task_init(task) != EOK) {
     204                slab_free(task_cache, task);
     205                return NULL;
     206        }
     207
    204208        refcount_init(&task->refcount);
    205209
     
    213217        task->ucycles = 0;
    214218        task->kcycles = 0;
    215 
    216         caps_task_init(task);
    217219
    218220        task->ipc_info.call_sent = 0;
     
    249251                }
    250252
    251                 kobject_t *phone_obj = kobject_get(task, phone_handle,
    252                     KOBJECT_TYPE_PHONE);
    253                 (void) ipc_phone_connect(phone_obj->phone, ipc_box_0);
     253                phone_t *phone = phone_from_kobject(
     254                    kobject_get(task, phone_handle, KOBJECT_TYPE_PHONE));
     255                (void) ipc_phone_connect(phone, ipc_box_0);
    254256        }
    255257
     
    288290         */
    289291        as_release(task->as);
     292
     293        caps_task_clear(task);
    290294
    291295        slab_free(task_cache, task);
Note: See TracChangeset for help on using the changeset viewer.