aboutsummaryrefslogtreecommitdiff
path: root/src/lib.rs
diff options
context:
space:
mode:
authorTianhao Wang <shrik3@mailbox.org>2024-05-29 19:53:52 +0200
committerTianhao Wang <shrik3@mailbox.org>2024-06-11 15:17:11 +0200
commitcd658673a35df8b0da3551e819e26d35c18b89f2 (patch)
tree74c209b519290eb43545e800b88ddf9dfa796a7a /src/lib.rs
parent9cf85e88211512b0410f9bb9f2f19ea4ce9a8190 (diff)
mm: add stack based PMA
use 8MiB reserved array to manage up to 4GiB of physical memory (4K Pages only) Signed-off-by: Tianhao Wang <shrik3@mailbox.org>
Diffstat (limited to 'src/lib.rs')
-rw-r--r--src/lib.rs28
1 files changed, 18 insertions, 10 deletions
diff --git a/src/lib.rs b/src/lib.rs
index cd5cd7c..0eb1c7d 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -31,19 +31,27 @@ pub extern "C" fn _entry() -> ! {
assert!(multiboot::check(), "bad multiboot info from grub!");
let mbi = multiboot::get_mb_info().expect("bad multiboot info flags");
let mem = unsafe { mbi.get_mem() }.unwrap();
- let mmap = unsafe { mbi.get_mmap() }.unwrap();
- println!("memory: {:#X?}", mem);
- println!("mmap (start): {:#X?}", mmap);
-
- multiboot::_test_mmap();
+ println!(
+ "available memory: lower {:#X} KiB, upper:{:#X} KiB",
+ mem.lower(),
+ mem.upper()
+ );
+ mm::init();
interrupt::init();
pic_8259::allow(PicDeviceInt::KEYBOARD);
interrupt::interrupt_enable();
- let mut framemap = mm::pma::FMap::new();
- framemap.init();
- println!("Bitmap starting from : {:p}", framemap.bm.as_ptr());
- println!("Skip first {} bytes", framemap.skip_byte);
- println!("system init .. done!");
+
+ println!(
+ "kernel: {:#X} - {:#X}",
+ defs::pmap_kernel_start(),
+ defs::pmap_kernel_end()
+ );
+ println!(
+ " BSS: {:#X} - {:#X}",
+ defs::pmap_bss_start(),
+ defs::pmap_bss_end()
+ );
+
// io::print_welcome();
// busy loop query keyboard