#![feature(asm)] #![feature(unique)] #![feature(const_fn)] #![feature(lang_items)] #![no_std] #[macro_use] extern crate log; extern crate rlibc; extern crate spin; extern crate volatile; mod arch; #[macro_use] mod macros; mod misc; mod logger; use arch::x86_64::device::vga_console; #[no_mangle] pub extern fn kernel_main() { //////////// !!! WARNING !!! //////////// // THE STACK IS LARGER NOW, BUT // // WE STILL HAVE NO GUARD PAGE // ///////////////////////////////////////// vga_console::WRITER.lock().clear_screen(); println!("--- Sparkle v{} booting! ---", ::misc::VERSION); logger::init().expect("Logger failed to launch!"); loop {} } #[lang = "eh_personality"] #[no_mangle] pub extern fn eh_personality() {} #[lang = "panic_fmt"] #[no_mangle] pub extern fn panic_fmt() -> ! {loop{}} #[allow(non_snake_case)] #[no_mangle] pub extern "C" fn _Unwind_Resume() -> ! { // we should hlt here loop {} }