diff --git a/kernel/src/lib.rs b/kernel/src/lib.rs new file mode 100644 index 0000000..08be60a --- /dev/null +++ b/kernel/src/lib.rs @@ -0,0 +1,35 @@ +#![no_std] + +use bootloader_api::{ + config::{BootloaderConfig, Mapping}, + BootInfo +}; + +mod logger; + +pub static BOOTLOADER_CONFIG: BootloaderConfig = { + let mut config = BootloaderConfig::new_default(); + config.mappings.physical_memory = Some(Mapping::Dynamic); + config +}; + + +pub fn main(boot_info: &'static mut BootInfo) -> ! { + let info = boot_info.framebuffer.as_ref().unwrap().info(); + let buffer = boot_info.framebuffer.as_mut().unwrap().buffer_mut(); + + logger::init_logger(buffer, info); + + log::info!("Hello World from KERNEL"); + + // Endless loop as the kernel must stay running + loop {} +} + +#[panic_handler] +#[cfg(not(test))] +fn panic(info: &core::panic::PanicInfo) -> ! { + logger::force_unlock(); + log::error!("{}", info); + loop {} +} diff --git a/kernel/src/main.rs b/kernel/src/main.rs index e76a697..75b4cbe 100644 --- a/kernel/src/main.rs +++ b/kernel/src/main.rs @@ -1,37 +1,6 @@ #![no_std] #![no_main] -use bootloader_api::{ - config::{BootloaderConfig, Mapping}, - entry_point, BootInfo -}; +use bootloader_api::entry_point; -mod logger; - -pub static BOOTLOADER_CONFIG: BootloaderConfig = { - let mut config = BootloaderConfig::new_default(); - config.mappings.physical_memory = Some(Mapping::Dynamic); - config -}; - -entry_point!(kernel_main); - -fn kernel_main(boot_info: &'static mut BootInfo) -> ! { - let info = boot_info.framebuffer.as_ref().unwrap().info(); - let buffer = boot_info.framebuffer.as_mut().unwrap().buffer_mut(); - - logger::init_logger(buffer, info); - - log::info!("Hello World from KERNEL"); - - // Endless loop as the kernel must stay running - loop {} -} - -#[panic_handler] -#[cfg(not(test))] -fn panic(info: &core::panic::PanicInfo) -> ! { - logger::force_unlock(); - log::error!("{}", info); - loop {} -} +entry_point!(kernel::main);