Skip to main content

sparreal_kernel/hal/
setup.rs

1use crate::hal::al;
2
3pub fn start_kernel() -> ! {
4    crate::os::logger::init();
5    info!("Setting up allocator...");
6
7    crate::os::mem::init_heap(al::memory::memory_map());
8    al::platform::post_allocator();
9    crate::os::mem::paging::init();
10
11    al::platform::post_paging();
12
13    crate::os::time::init();
14
15    // rdrive::probe_all(true).unwrap();
16
17    al::cpu::irq_local_set_enable(true);
18
19    unsafe extern "C" {
20        fn __sparreal_main();
21    }
22
23    unsafe { __sparreal_main() };
24
25    al::platform::shutdown()
26}