kxld: publish kext objects in //kexts
This commit is contained in:
@@ -6,6 +6,7 @@
|
||||
#include <stddef.h>
|
||||
|
||||
static spin_lock_t kext_tree_lock = SPIN_LOCK_INIT;
|
||||
static object_t *kext_set;
|
||||
btree_t kext_tree;
|
||||
|
||||
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)
|
||||
{
|
||||
object_type_register(&kext_type);
|
||||
kext_set = set_create("kexts");
|
||||
object_publish(global_namespace(), "/", kext_set);
|
||||
return KERN_OK;
|
||||
}
|
||||
|
||||
@@ -142,9 +145,12 @@ kern_status_t kext_register(struct kext *kext)
|
||||
return KERN_NAME_EXISTS;
|
||||
}
|
||||
|
||||
object_t *kext_obj = object_header(kext);
|
||||
object_ref(object_header(kext));
|
||||
kext_add(kext);
|
||||
|
||||
set_add_object(kext_set, kext_obj);
|
||||
|
||||
spin_unlock_irqrestore(&kext_tree_lock, flags);
|
||||
return KERN_OK;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user