41 lines
819 B
Rust
41 lines
819 B
Rust
#![no_std] // Don't link the Rust standard library
|
|
#![no_main] // Disable all Rust-level entry points
|
|
|
|
use core::panic::PanicInfo;
|
|
use limine::*;
|
|
|
|
use limine::request::{
|
|
FramebufferRequest, RequestsEndMarker, RequestsStartMarker,
|
|
};
|
|
|
|
mod font;
|
|
mod render;
|
|
|
|
use crate::font::FONT;
|
|
|
|
// Set the base revision
|
|
static BASE_REVISION: BaseRevision = BaseRevision::new();
|
|
|
|
|
|
// Halt and catch fire function
|
|
fn hcf() -> ! {
|
|
loop {
|
|
unsafe { core::arch::asm!("cli; hlt") }
|
|
}
|
|
}
|
|
|
|
// Called on panic
|
|
#[panic_handler]
|
|
fn panic(_info: &PanicInfo) -> ! {
|
|
hcf()
|
|
}
|
|
|
|
// Kernel entry point
|
|
#[no_mangle]
|
|
pub extern "C" fn kmain() -> ! {
|
|
render::init();
|
|
render::write_string("Welcome to GoofyAhhOS!\nthis is the superior os\nif you disagree you are a heretic in the name of steven.", 0xff0000, 0);
|
|
|
|
hcf()
|
|
}
|