From efc67a20127c60886fa6c0643164804e91a32e70 Mon Sep 17 00:00:00 2001 From: 4lDO2 <4lDO2@protonmail.com> Date: Sun, 17 Jul 2022 13:30:44 +0200 Subject: [PATCH] Use wrapped flags for PageEntry. --- src/page/entry.rs | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/page/entry.rs b/src/page/entry.rs index 6732da4970..0f593a26a4 100644 --- a/src/page/entry.rs +++ b/src/page/entry.rs @@ -2,6 +2,7 @@ use core::marker::PhantomData; use crate::{ Arch, + PageFlags, PhysicalAddress, }; @@ -28,8 +29,13 @@ impl PageEntry { } #[inline(always)] - pub fn flags(&self) -> usize { - self.data & A::ENTRY_FLAGS_MASK + pub fn flags(&self) -> PageFlags { + unsafe { PageFlags::from_data(self.data & A::ENTRY_FLAGS_MASK) } + } + #[inline(always)] + pub fn set_flags(&mut self, flags: PageFlags) { + self.data &= !A::ENTRY_FLAGS_MASK; + self.data |= flags.data(); } #[inline(always)]