diff options
| author | Matteo Gmür <matteo.gmuer1@ost.ch> | 2024-10-20 13:17:24 +0000 |
|---|---|---|
| committer | Matteo Gmür <matteo.gmuer1@ost.ch> | 2024-10-20 13:17:24 +0000 |
| commit | 49ae81912f3a440f1958e86296d468ec669f71a2 (patch) | |
| tree | c4bfc83e68fc5e279c0e56e7d1821b07ba0d412f | |
| parent | 1b03bcecac1276b486e17daf0384de7fa203d974 (diff) | |
| download | teachos-49ae81912f3a440f1958e86296d468ec669f71a2.tar.xz teachos-49ae81912f3a440f1958e86296d468ec669f71a2.zip | |
Fix active page table cpp
| -rw-r--r-- | arch/x86_64/include/arch/memory/paging/active_page_table.hpp | 3 | ||||
| -rw-r--r-- | arch/x86_64/src/memory/paging/active_page_table.cpp | 34 |
2 files changed, 14 insertions, 23 deletions
diff --git a/arch/x86_64/include/arch/memory/paging/active_page_table.hpp b/arch/x86_64/include/arch/memory/paging/active_page_table.hpp index 4a94b40..3933d5a 100644 --- a/arch/x86_64/include/arch/memory/paging/active_page_table.hpp +++ b/arch/x86_64/include/arch/memory/paging/active_page_table.hpp @@ -28,4 +28,5 @@ namespace teachos::arch::memory::paging page_table * level4_page_table; ///< The active level4 page table. }; } // namespace teachos::arch::memory::paging -#endif
\ No newline at end of file + +#endif // TEACHOS_ARCH_X86_64_MEMORY_PAGING_VIRTUAL_PAGE_HPP diff --git a/arch/x86_64/src/memory/paging/active_page_table.cpp b/arch/x86_64/src/memory/paging/active_page_table.cpp index eb85c34..ec89e0e 100644 --- a/arch/x86_64/src/memory/paging/active_page_table.cpp +++ b/arch/x86_64/src/memory/paging/active_page_table.cpp @@ -2,30 +2,20 @@ namespace teachos::arch::memory::paging { - struct active_page_table + auto active_page_table::create(page_table * level4_page_table) -> active_page_table * { - auto create(page_table * level4_page_table) -> active_page_table * + if (instantiated) { - if (instantiated) - { - return this; - } - - instantiated = true; - return &active_page_table(level4_page_table); + return this; } - active_page_table(const active_page_table &) = delete; - active_page_table & operator=(const active_page_table &) = delete; + instantiated = true; + return &active_page_table(level4_page_table); + } - private: - active_page_table(page_table * level4_page_table) - : level4_page_table(level4_page_table) - { - // Nothing to do - } - - bool instantiated = false; - page_table * level4_page_table; - }; -} // namespace teachos::arch::memory::paging
\ No newline at end of file + active_page_table::active_page_table(page_table * level4_page_table) + : level4_page_table(level4_page_table) + { + // Nothing to do + } +} // namespace teachos::arch::memory::paging |
