From db7869d99573e8249a04c3cc8c6f54348e9f77c4 Mon Sep 17 00:00:00 2001 From: Jeremy Soller Date: Tue, 8 Sep 2020 13:52:22 -0600 Subject: [PATCH] Add table function for mapper, to get inner page table --- src/page/mapper.rs | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/page/mapper.rs b/src/page/mapper.rs index c2cc225843..fa60be1cc3 100644 --- a/src/page/mapper.rs +++ b/src/page/mapper.rs @@ -29,12 +29,16 @@ impl<'f, A: Arch, F: FrameAllocator> PageMapper<'f, A, F> { A::set_table(self.table_addr); } - pub unsafe fn map(&mut self, virt: VirtualAddress, entry: PageEntry) -> Option<()> { - let mut table = PageTable::new( + pub unsafe fn table(&self) -> PageTable { + PageTable::new( VirtualAddress::new(0), self.table_addr, A::PAGE_LEVELS - 1 - ); + ) + } + + pub unsafe fn map(&mut self, virt: VirtualAddress, entry: PageEntry) -> Option<()> { + let mut table = self.table(); loop { let i = table.index_of(virt)?; if table.level() == 0 {