From 7a0088c4d2ac7b1cf555336bf156ab9a8fd8335e Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Wed, 25 Dec 2019 02:39:03 +0100 Subject: [PATCH] Kernel: Clean up Region access bit setters a little --- Kernel/VM/Region.h | 26 +++++++++++--------------- 1 file changed, 11 insertions(+), 15 deletions(-) diff --git a/Kernel/VM/Region.h b/Kernel/VM/Region.h index 95ac5fd96a2..f9879c84c2c 100644 --- a/Kernel/VM/Region.h +++ b/Kernel/VM/Region.h @@ -109,21 +109,9 @@ public: u32 cow_pages() const; - void set_writable(bool b) - { - if (b) - m_access |= Access::Write; - else - m_access &= ~Access::Write; - } - - void set_readable(bool b) - { - if (b) - m_access |= Access::Read; - else - m_access &= ~Access::Read; - } + void set_readable(bool b) { set_access_bit(Access::Read, b); } + void set_writable(bool b) { set_access_bit(Access::Write, b); } + void set_executable(bool b) { set_access_bit(Access::Execute, b); } void map(PageDirectory&); enum class ShouldDeallocateVirtualMemoryRange { @@ -147,6 +135,14 @@ public: private: Bitmap& ensure_cow_map() const; + void set_access_bit(Access access, bool b) + { + if (b) + m_access |= access; + else + m_access &= ~access; + } + PageFaultResponse handle_cow_fault(size_t page_index); PageFaultResponse handle_inode_fault(size_t page_index); PageFaultResponse handle_zero_fault(size_t page_index);