bowotloader/src/main.rs

47 lines
989 B
Rust

#![no_std]
#![no_main]
#![feature(const_mut_refs)]
#![feature(const_maybe_uninit_write)]
#![feature(const_maybe_uninit_as_mut_ptr)]
use core::alloc::GlobalAlloc;
use core::panic::PanicInfo;
use multiboot;
use multiboot2;
use multiboot2::BootInformation;
use spin::*;
use talc::*;
mod mm;
mod print;
mod util;
static mut START_ARENA: [u8; 10000] = [0; 10000];
// temp till mm is ready
#[global_allocator]
static ALLOCATOR: Talck<spin::Mutex<()>, ClaimOnOom> =
Talc::new(unsafe { ClaimOnOom::new(Span::from_const_array(core::ptr::addr_of!(START_ARENA))) })
.lock();
#[no_mangle]
pub extern "C" fn main() -> u32 {
println!("{}!", "It works");
0
}
pub fn kernel_entry(mb_magic: u32, mbi_ptr: u32) {
if mb_magic == multiboot2::MAGIC {
} else if mb_magic == multiboot::header::MULTIBOOT_HEADER_MAGIC {
};
}
extern "C" {
fn exit(status: i32) -> !;
}
#[panic_handler]
fn panic(info: &PanicInfo) -> ! {
println!("{}", info);
unsafe { exit(1) }
}