package kernel; import kernel.log.Log; import kernel.turtle.Turtle; import haxe.MainLoop; import kernel.net.Routing; import cc.OS; import lib.Debug; import kernel.ui.WindowManager; import kernel.peripherals.Peripherals.Peripheral; import kernel.net.Net; class Init { public static function initKernel() { // Init singeltons here because haxe is confused about the order to create them. Log.instance = new Log(); KernelEvents.instance = new KernelEvents(); Peripheral.instance = new Peripheral(); WindowManager.instance = new WindowManager(); MainTerm.instance = new MainTerm(); if (Turtle.isTurtle()){ Turtle.instance = new Turtle(); } Routing.instance = new Routing(); Net.instance = new Net(); // Register default terminate handler KernelEvents.instance.onTerminate.handle(_->{ OS.reboot(); }); Debug.printBuildInfo(); Routing.instance.init(); MainLoop.add(()->{ KernelEvents.instance.startEventLoop(); }); } }