aboutsummaryrefslogtreecommitdiff
path: root/arch/x86_64/src/memory/paging
diff options
context:
space:
mode:
Diffstat (limited to 'arch/x86_64/src/memory/paging')
-rw-r--r--arch/x86_64/src/memory/paging/active_page_table.cpp34
1 files changed, 12 insertions, 22 deletions
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