pvmfw: Extract pvmfw-specific code out of mmu.rs

Prepare the file to be moved to vmbase for re-use by

 - Extracting pvmfw-specific functions dealing with the appended data
   and setting up the initial dynamic PTs to memory.rs
 - Renaming PageTable::map_data to map_data_dbm and re-introducing
   map_data for PTEs that don't set the DBM bit
 - Documenting public functions
 - Implementing From<IdMap> for PageTable
 - Introducing a Result wrapping type

Bug: 282928116
Test: m pvmfw_img
Change-Id: Ibec97c31fa7a86e3843b6e2167c39273be68aba9
diff --git a/pvmfw/src/entry.rs b/pvmfw/src/entry.rs
index 7655f40..08f076b 100644
--- a/pvmfw/src/entry.rs
+++ b/pvmfw/src/entry.rs
@@ -20,8 +20,7 @@
 use crate::heap;
 use crate::helpers;
 use crate::helpers::RangeExt as _;
-use crate::memory::{MemoryTracker, MEMORY};
-use crate::mmu;
+use crate::memory::{self, MemoryTracker, MEMORY};
 use crate::rand;
 use core::arch::asm;
 use core::mem::{drop, size_of};
@@ -208,7 +207,7 @@
     // script prevents it from overlapping with other objects.
     let appended_data = unsafe { get_appended_data_slice() };
 
-    let mut page_table = mmu::PageTable::from_static_layout().map_err(|e| {
+    let mut page_table = memory::init_page_table().map_err(|e| {
         error!("Failed to set up the dynamic page tables: {e}");
         RebootReason::InternalError
     })?;
@@ -285,7 +284,7 @@
     assert_eq!(bcc.start % ASM_STP_ALIGN, 0, "Misaligned guest BCC.");
     assert_eq!(bcc.end % ASM_STP_ALIGN, 0, "Misaligned guest BCC.");
 
-    let stack = mmu::stack_range();
+    let stack = memory::stack_range();
 
     assert_ne!(stack.len(), 0, "stack region is empty.");
     assert_eq!(stack.start % ASM_STP_ALIGN, 0, "Misaligned stack region.");
@@ -388,7 +387,7 @@
 }
 
 unsafe fn get_appended_data_slice() -> &'static mut [u8] {
-    let range = mmu::PageTable::appended_payload_range();
+    let range = memory::appended_payload_range();
     // SAFETY: This region is mapped and the linker script prevents it from overlapping with other
     // objects.
     unsafe { slice::from_raw_parts_mut(range.start as *mut u8, range.len()) }