From 714e69d281e8b61d4214cea1c7e0a33a2f9cde71 Mon Sep 17 00:00:00 2001 From: Tianhao Wang Date: Thu, 30 May 2024 09:35:16 +0200 Subject: mm: fix Range type and addr rounding Signed-off-by: Tianhao Wang --- src/mm/pma.rs | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) (limited to 'src/mm/pma.rs') diff --git a/src/mm/pma.rs b/src/mm/pma.rs index a4c27c4..f2822e6 100644 --- a/src/mm/pma.rs +++ b/src/mm/pma.rs @@ -1,6 +1,7 @@ use crate::defs::*; use crate::io::*; use crate::machine::multiboot::MultibootMmap; +use core::ops::Range; use core::slice; extern "C" { @@ -51,18 +52,18 @@ impl PageStackAllocator { Some(self.page_stack[self.head]) } - /// 4k page only - pub fn insert_range(&mut self, r: Range) -> u64 { + /// 4k page only? + pub fn insert_range(&mut self, r: &Range) -> u64 { + // r.contains(&1); let mut inserted = 0; - let mut page = roundup_4k(r.addr); + let mut page = roundup_4k(r.start); loop { - if !r.contains(page) { + if !r.contains(&page) { break; } if !self.free_page(page) { break; } else { - println!("inserted: {:#X}", page); inserted += 1; } page += 0x1000; -- cgit v1.2.3-70-g09d2