#include #include #include #include #include #include #include #include #include #include #include extern unsigned long get_rflags(void); extern char __pstart[], __pend[]; void print_kernel_banner(void) { printk("Socks kernel version " BUILD_ID); } void kernel_init(uintptr_t arg) { ml_init(arg); kern_status_t status; status = scan_internal_kexts(); if (status != KERN_OK) { panic("scan_internal_kexts() failed with code %s", kern_status_string(status)); } status = bring_internal_kexts_online(); if (status != KERN_OK) { panic("bring_internal_kexts_online() failed with code %s", kern_status_string(status)); } printk("kernel_init() running on processor %u", this_cpu()); run_all_tests(); while (1) { schedule_timeout(HZ); printk("tick"); } }