Pārlūkot izejas kodu

mm: remove `take()` from `PTE`

greatbridf 8 mēneši atpakaļ
vecāks
revīzija
b4e2516cbc
2 mainītis faili ar 6 papildinājumiem un 7 dzēšanām
  1. 0 6
      arch/src/x86_64/mm.rs
  2. 6 1
      crates/eonix_mm/src/page_table/pte.rs

+ 0 - 6
arch/src/x86_64/mm.rs

@@ -52,12 +52,6 @@ impl PTE for PTE64 {
             PageAttribute64(self.0 & PA_MASK),
         )
     }
-
-    fn take(&mut self) -> (PFN, Self::Attr) {
-        let pfn_attr = self.get();
-        self.0 = 0;
-        pfn_attr
-    }
 }
 
 impl PagingMode for PagingMode4Levels {

+ 6 - 1
crates/eonix_mm/src/page_table/pte.rs

@@ -30,7 +30,12 @@ pub trait PTE: Sized {
 
     fn set(&mut self, pfn: PFN, attr: Self::Attr);
     fn get(&self) -> (PFN, Self::Attr);
-    fn take(&mut self) -> (PFN, Self::Attr);
+
+    fn take(&mut self) -> (PFN, Self::Attr) {
+        let pfn_attr = self.get();
+        self.set(PFN::from_val(0), Self::Attr::new());
+        pfn_attr
+    }
 
     fn set_pfn(&mut self, pfn: PFN) {
         self.set(pfn, self.get_attr());