Changeset 05ffb41 in mainline for kernel/generic/src/proc/task.c


Ignore:
Timestamp:
2017-08-17T19:11:14Z (7 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
1c85bae
Parents:
7e3826d9
Message:

Turn IPC phones into kobjects

File:
1 edited

Legend:

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

    r7e3826d9 r05ffb41  
    166166       
    167167        list_initialize(&task->threads);
     168
     169        int cap;
     170        for (cap = 0; cap < MAX_KERNEL_OBJECTS; cap++)
     171                kobject_init(&task->kobject[cap]);
    168172       
    169173        ipc_answerbox_init(&task->answerbox, task);
    170174       
    171         size_t i;
    172         for (i = 0; i < IPC_MAX_PHONES; i++)
    173                 ipc_phone_init(&task->phones[i], task);
    174 
    175175        spinlock_initialize(&task->active_calls_lock, "active_calls_lock");
    176176        list_initialize(&task->active_calls);
     
    228228       
    229229        if ((ipc_phone_0) &&
    230             (container_check(ipc_phone_0->task->container, task->container)))
    231                 (void) ipc_phone_connect(&task->phones[0], ipc_phone_0);
     230            (container_check(ipc_phone_0->task->container, task->container))) {
     231                int cap = phone_alloc(task);
     232                assert(cap == 0);
     233                (void) ipc_phone_connect(phone_get(task, 0), ipc_phone_0);
     234        }
    232235       
    233236        futex_task_init(task);
     
    611614       
    612615        if (*additional) {
    613                 size_t i;
    614                 for (i = 0; i < IPC_MAX_PHONES; i++) {
    615                         if (task->phones[i].callee)
    616                                 printf(" %zu:%p", i, task->phones[i].callee);
     616                int i;
     617                for (i = 0; i < MAX_KERNEL_OBJECTS; i++) {
     618                        phone_t *phone = phone_get(task, i);
     619                        if (phone && phone->callee)
     620                                printf(" %d:%p", i, phone->callee);
    617621                }
    618622                printf("\n");
Note: See TracChangeset for help on using the changeset viewer.