Răsfoiți Sursa

hal, mm: alloc basic folios from low to high addr

This can shorten qemu memory map.

Signed-off-by: greatbridf <greatbridf@icloud.com>
greatbridf 1 săptămână în urmă
părinte
comite
6a0f7033a5
1 a modificat fișierele cu 2 adăugiri și 3 ștergeri
  1. 2 3
      crates/eonix_hal/src/mm.rs

+ 2 - 3
crates/eonix_hal/src/mm.rs

@@ -41,9 +41,8 @@ impl BasicPageAlloc {
     fn alloc_one(&mut self) -> PFN {
         assert_ne!(self.head, self.tail, "No free pages available");
         let mut range = self.ranges[self.head].take().unwrap();
-        range = range.shrink(PAGE_SIZE);
-
-        let pfn = PFN::from(range.end());
+        let pfn = PFN::from(range.start());
+        range = PRange::new(range.start() + PAGE_SIZE, range.end());
 
         if range.len() != 0 {
             self.ranges[self.head] = Some(range);