#include #include #include #include static vm_cache_t kext_cache = { .c_obj_size = sizeof(struct kext) }; static struct kext *self = NULL; extern char __kexts_start[]; extern char __kexts_end[]; kern_status_t scan_internal_kexts(void) { vm_cache_init(&kext_cache); self = vm_cache_alloc(&kext_cache, 0); snprintf(self->k_ident, sizeof self->k_ident, "%s", KERNEL_KEXT_ID); self->k_flags = KEXT_INTERNAL | KEXT_ONLINE; self->k_nr_dependencies = 0; self->k_dependencies = NULL; struct kext_info *cur = (struct kext_info *)__kexts_start; struct kext_info *end = (struct kext_info *)__kexts_end; while (cur < end) { printk("kext: found internal kext '%s'", cur->k_ident); cur++; } return KERN_OK; } kern_status_t bring_internal_kexts_online(void) { return KERN_OK; }