use rmm::{ Arch, EmulateArch, PageTable }; unsafe fn dump_tables(table: PageTable) { let level = table.level(); for i in 0..A::PAGE_ENTRIES { if level == 0 { if let Some(entry) = table.entry(i) { if entry.present() { let base = table.entry_base(i).unwrap(); println!("0x{:X}: 0x{:X}", base.data(), entry.address().data()); } } } else { if let Some(next) = table.next(i) { dump_tables(next); } } } } unsafe fn inner() { let areas = A::init(); // Debug table dump_tables(PageTable::::top()); let megabyte = 0x100000; // Test read println!("0x{:X} = 0x{:X}", megabyte, A::read::(megabyte)); // Test write A::write::(megabyte, 0x5A); // Test read println!("0x{:X} = 0x{:X}", megabyte, A::read::(megabyte)); } fn main() { unsafe { inner::(); } }