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    crate::os::mem::paging::init();
9
10    al::platform::post_paging();
11
12    crate::os::time::init();
13
14    // rdrive::probe_all(true).unwrap();
15
16    al::cpu::irq_local_set_enable(true);
17
18    unsafe extern "C" {
19        fn __sparreal_main();
20    }
21
22    unsafe { __sparreal_main() };
23
24    al::platform::shutdown()
25}