Split into main and kernel lib
Signed-off-by: Noah Knegt <git@noahknegt.com>
This commit is contained in:
35
kernel/src/lib.rs
Normal file
35
kernel/src/lib.rs
Normal file
@@ -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 {}
|
||||
}
|
@@ -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);
|
||||
|
Reference in New Issue
Block a user