You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

49 lines
968 B

#![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 {}
}