summaryrefslogtreecommitdiffhomepage
path: root/dev/kernel/src/PageMgr.cc
diff options
context:
space:
mode:
authorAmlal <amlal@nekernel.org>2025-04-25 13:08:33 +0200
committerAmlal <amlal@nekernel.org>2025-04-25 13:08:33 +0200
commitfb790b07aeba8e22e4190cf3e1834d11ecde6c96 (patch)
tree4cec7d1b321307b1d5935577631dae116a658a37 /dev/kernel/src/PageMgr.cc
parent63a2d92c5dfe976175cda024ec01905d11b43738 (diff)
dev: better .clang-format, ran format command.
Signed-off-by: Amlal <amlal@nekernel.org>
Diffstat (limited to 'dev/kernel/src/PageMgr.cc')
-rw-r--r--dev/kernel/src/PageMgr.cc179
1 files changed, 82 insertions, 97 deletions
diff --git a/dev/kernel/src/PageMgr.cc b/dev/kernel/src/PageMgr.cc
index 8778a855..7e385f26 100644
--- a/dev/kernel/src/PageMgr.cc
+++ b/dev/kernel/src/PageMgr.cc
@@ -1,6 +1,6 @@
/* -------------------------------------------
- Copyright (C) 2024-2025, Amlal El Mahrouss, all rights reserved.
+ Copyright (C) 2024-2025, Amlal El Mahrouss, all rights reserved.
------------------------------------------- */
@@ -11,100 +11,85 @@
#include <HALKit/AMD64/Paging.h>
#elif defined(__NE_ARM64__)
#include <HALKit/ARM64/Paging.h>
-#endif // ifdef __NE_AMD64__ || defined(__NE_ARM64__)
-
-namespace Kernel
-{
- PTEWrapper::PTEWrapper(Boolean Rw, Boolean User, Boolean ExecDisable, UIntPtr VirtAddr)
- : fRw(Rw),
- fUser(User),
- fExecDisable(ExecDisable),
- fVirtAddr(VirtAddr),
- fCache(false),
- fShareable(false),
- fWt(false),
- fPresent(true),
- fAccessed(false)
- {
- }
-
- PTEWrapper::~PTEWrapper() = default;
-
- /// @brief Flush virtual address.
- /// @param VirtAddr
- Void PageMgr::FlushTLB()
- {
+#endif // ifdef __NE_AMD64__ || defined(__NE_ARM64__)
+
+namespace Kernel {
+PTEWrapper::PTEWrapper(Boolean Rw, Boolean User, Boolean ExecDisable, UIntPtr VirtAddr)
+ : fRw(Rw),
+ fUser(User),
+ fExecDisable(ExecDisable),
+ fVirtAddr(VirtAddr),
+ fCache(false),
+ fShareable(false),
+ fWt(false),
+ fPresent(true),
+ fAccessed(false) {}
+
+PTEWrapper::~PTEWrapper() = default;
+
+/// @brief Flush virtual address.
+/// @param VirtAddr
+Void PageMgr::FlushTLB() {
#ifndef __NE_MINIMAL_OS__
- hal_flush_tlb();
-#endif // !__NE_MINIMAL_OS__
- }
-
- /// @brief Reclaim freed page.
- /// @return
- Bool PTEWrapper::Reclaim()
- {
- if (!this->fPresent)
- {
- this->fPresent = true;
- return true;
- }
-
- return false;
- }
-
- /// @brief Request a PTE.
- /// @param Rw r/w?
- /// @param User user mode?
- /// @param ExecDisable disable execution on page?
- /// @return
- PTEWrapper PageMgr::Request(Boolean Rw, Boolean User, Boolean ExecDisable, SizeT Sz, SizeT Pad)
- {
- // Store PTE wrapper right after PTE.
- VoidPtr ptr = Kernel::HAL::mm_alloc_bitmap(Rw, User, Sz, NO, Pad);
-
- return PTEWrapper{Rw, User, ExecDisable, reinterpret_cast<UIntPtr>(ptr)};
- }
-
- /// @brief Disable BitMap.
- /// @param wrapper the wrapper.
- /// @return If the page bitmap was cleared or not.
- Bool PageMgr::Free(Ref<PTEWrapper>& wrapper)
- {
- if (!Kernel::HAL::mm_free_bitmap((VoidPtr)wrapper.Leak().VirtualAddress()))
- return false;
-
- return true;
- }
-
- /// @brief Virtual PTE address.
- /// @return The virtual address of the page.
- UIntPtr PTEWrapper::VirtualAddress()
- {
- return (fVirtAddr);
- }
-
- Bool PTEWrapper::Shareable()
- {
- return fShareable;
- }
-
- Bool PTEWrapper::Present()
- {
- return fPresent;
- }
-
- Bool PTEWrapper::Access()
- {
- return fAccessed;
- }
-
- Void PTEWrapper::NoExecute(const bool enable)
- {
- fExecDisable = enable;
- }
-
- Bool PTEWrapper::NoExecute()
- {
- return fExecDisable;
- }
-} // namespace Kernel
+ hal_flush_tlb();
+#endif // !__NE_MINIMAL_OS__
+}
+
+/// @brief Reclaim freed page.
+/// @return
+Bool PTEWrapper::Reclaim() {
+ if (!this->fPresent) {
+ this->fPresent = true;
+ return true;
+ }
+
+ return false;
+}
+
+/// @brief Request a PTE.
+/// @param Rw r/w?
+/// @param User user mode?
+/// @param ExecDisable disable execution on page?
+/// @return
+PTEWrapper PageMgr::Request(Boolean Rw, Boolean User, Boolean ExecDisable, SizeT Sz, SizeT Pad) {
+ // Store PTE wrapper right after PTE.
+ VoidPtr ptr = Kernel::HAL::mm_alloc_bitmap(Rw, User, Sz, NO, Pad);
+
+ return PTEWrapper{Rw, User, ExecDisable, reinterpret_cast<UIntPtr>(ptr)};
+}
+
+/// @brief Disable BitMap.
+/// @param wrapper the wrapper.
+/// @return If the page bitmap was cleared or not.
+Bool PageMgr::Free(Ref<PTEWrapper>& wrapper) {
+ if (!Kernel::HAL::mm_free_bitmap((VoidPtr) wrapper.Leak().VirtualAddress())) return false;
+
+ return true;
+}
+
+/// @brief Virtual PTE address.
+/// @return The virtual address of the page.
+UIntPtr PTEWrapper::VirtualAddress() {
+ return (fVirtAddr);
+}
+
+Bool PTEWrapper::Shareable() {
+ return fShareable;
+}
+
+Bool PTEWrapper::Present() {
+ return fPresent;
+}
+
+Bool PTEWrapper::Access() {
+ return fAccessed;
+}
+
+Void PTEWrapper::NoExecute(const bool enable) {
+ fExecDisable = enable;
+}
+
+Bool PTEWrapper::NoExecute() {
+ return fExecDisable;
+}
+} // namespace Kernel