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_std]
|
||||||
#![no_main]
|
#![no_main]
|
||||||
|
|
||||||
use bootloader_api::{
|
use bootloader_api::entry_point;
|
||||||
config::{BootloaderConfig, Mapping},
|
|
||||||
entry_point, BootInfo
|
|
||||||
};
|
|
||||||
|
|
||||||
mod logger;
|
entry_point!(kernel::main);
|
||||||
|
|
||||||
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 {}
|
|
||||||
}
|
|
||||||
|
Reference in New Issue
Block a user