kxld: publish kext objects in //kexts

This commit is contained in:
2023-04-09 20:40:06 +01:00
parent 5d9f193aa2
commit e38ca58f18

View File

@@ -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;
}