47 lines
989 B
Rust
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) }
|
|
}
|