Ignore:
File:
1 edited

Legend:

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

    rfc0de8c r5e801dc  
    8383#include <mm/slab.h>
    8484#include <adt/list.h>
    85 #include <synch/syswaitq.h>
    86 #include <ipc/ipcrsc.h>
    87 #include <ipc/ipc.h>
    88 #include <ipc/irq.h>
    8985
    9086#include <limits.h>
     
    9288#include <stdlib.h>
    9389
    94 #define CAPS_START      ((intptr_t) CAP_NIL + 1)
    95 #define CAPS_SIZE       (INT_MAX - (int) CAPS_START)
     90#define CAPS_START      (CAP_NIL + 1)
     91#define CAPS_SIZE       (INT_MAX - CAPS_START)
    9692#define CAPS_LAST       (CAPS_SIZE - 1)
    9793
    9894static slab_cache_t *cap_cache;
    9995static slab_cache_t *kobject_cache;
    100 
    101 kobject_ops_t *kobject_ops[KOBJECT_TYPE_MAX] = {
    102         [KOBJECT_TYPE_CALL] = &call_kobject_ops,
    103         [KOBJECT_TYPE_IRQ] = &irq_kobject_ops,
    104         [KOBJECT_TYPE_PHONE] = &phone_kobject_ops,
    105         [KOBJECT_TYPE_WAITQ] = &waitq_kobject_ops
    106 };
    10796
    10897static size_t caps_hash(const ht_link_t *item)
     
    423412 * @param type  Type of the kernel object.
    424413 * @param raw   Raw pointer to the encapsulated object.
    425  */
    426 void kobject_initialize(kobject_t *kobj, kobject_type_t type, void *raw)
     414 * @param ops   Pointer to kernel object operations for the respective type.
     415 */
     416void kobject_initialize(kobject_t *kobj, kobject_type_t type, void *raw,
     417    kobject_ops_t *ops)
    427418{
    428419        atomic_store(&kobj->refcnt, 1);
     
    433424        kobj->type = type;
    434425        kobj->raw = raw;
     426        kobj->ops = ops;
    435427}
    436428
     
    482474{
    483475        if (atomic_postdec(&kobj->refcnt) == 1) {
    484                 KOBJECT_OP(kobj)->destroy(kobj->raw);
     476                kobj->ops->destroy(kobj->raw);
    485477                kobject_free(kobj);
    486478        }
Note: See TracChangeset for help on using the changeset viewer.