Changeset e68765e in mainline for kernel/generic/src/cap/cap.c


Ignore:
Timestamp:
2017-08-20T16:58:10Z (7 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
88db88d
Parents:
3f74275
Message:

Store capability's handle inside of it

File:
1 edited

Legend:

Unmodified
Added
Removed
  • kernel/generic/src/cap/cap.c

    r3f74275 re68765e  
    3939#include <mm/slab.h>
    4040
    41 void cap_initialize(cap_t *cap)
     41void cap_initialize(cap_t *cap, int handle)
    4242{
    4343        cap->type = CAP_TYPE_INVALID;
     44        cap->handle = handle;
    4445        cap->can_reclaim = NULL;
    4546}
     
    5354{
    5455        for (int i = 0; i < MAX_CAPS; i++)
    55                 cap_initialize(&task->caps[i]);
     56                cap_initialize(&task->caps[i], i);
    5657}
    5758
     
    8485                if (cap->type > CAP_TYPE_ALLOCATED) {
    8586                        if (cap->can_reclaim && cap->can_reclaim(cap))
    86                                 cap_initialize(cap);
     87                                cap_initialize(cap, handle);
    8788                }
    8889                if (cap->type == CAP_TYPE_INVALID) {
     
    104105
    105106        irq_spinlock_lock(&task->lock, true);
    106         cap_initialize(&task->caps[handle]);
     107        cap_initialize(&task->caps[handle], handle);
    107108        irq_spinlock_unlock(&task->lock, true);
    108 }
    109 
    110 int cap_get_handle(task_t *task, cap_t *cap)
    111 {
    112         return cap - task->caps;
    113109}
    114110
Note: See TracChangeset for help on using the changeset viewer.