aboutsummaryrefslogtreecommitdiff
path: root/src/mm/pma.rs
diff options
context:
space:
mode:
authorTianhao Wang <shrik3@mailbox.org>2024-05-30 09:35:16 +0200
committerTianhao Wang <shrik3@mailbox.org>2024-06-11 15:17:11 +0200
commit714e69d281e8b61d4214cea1c7e0a33a2f9cde71 (patch)
treef7723a75835d9af0b1bd090d9dd3bd2511066f84 /src/mm/pma.rs
parentfe791acbe74705b7401a19f1d85cb2f51e8ff616 (diff)
mm: fix Range type and addr rounding
Signed-off-by: Tianhao Wang <shrik3@mailbox.org>
Diffstat (limited to 'src/mm/pma.rs')
-rw-r--r--src/mm/pma.rs11
1 files changed, 6 insertions, 5 deletions
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>) -> 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;