kxld: publish kext objects in //kexts
This commit is contained in:
@@ -6,6 +6,7 @@
|
|||||||
#include <stddef.h>
|
#include <stddef.h>
|
||||||
|
|
||||||
static spin_lock_t kext_tree_lock = SPIN_LOCK_INIT;
|
static spin_lock_t kext_tree_lock = SPIN_LOCK_INIT;
|
||||||
|
static object_t *kext_set;
|
||||||
btree_t kext_tree;
|
btree_t kext_tree;
|
||||||
|
|
||||||
static kern_status_t kext_query_name(object_t *obj, char out[OBJECT_NAME_MAX])
|
static kern_status_t kext_query_name(object_t *obj, char out[OBJECT_NAME_MAX])
|
||||||
@@ -113,6 +114,8 @@ struct kext *kext_get_by_id(const char *ident)
|
|||||||
kern_status_t kext_cache_init(void)
|
kern_status_t kext_cache_init(void)
|
||||||
{
|
{
|
||||||
object_type_register(&kext_type);
|
object_type_register(&kext_type);
|
||||||
|
kext_set = set_create("kexts");
|
||||||
|
object_publish(global_namespace(), "/", kext_set);
|
||||||
return KERN_OK;
|
return KERN_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -142,9 +145,12 @@ kern_status_t kext_register(struct kext *kext)
|
|||||||
return KERN_NAME_EXISTS;
|
return KERN_NAME_EXISTS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
object_t *kext_obj = object_header(kext);
|
||||||
object_ref(object_header(kext));
|
object_ref(object_header(kext));
|
||||||
kext_add(kext);
|
kext_add(kext);
|
||||||
|
|
||||||
|
set_add_object(kext_set, kext_obj);
|
||||||
|
|
||||||
spin_unlock_irqrestore(&kext_tree_lock, flags);
|
spin_unlock_irqrestore(&kext_tree_lock, flags);
|
||||||
return KERN_OK;
|
return KERN_OK;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user