aboutsummaryrefslogtreecommitdiff
path: root/arch/x86_64/src
diff options
context:
space:
mode:
authorMatteo Gmür <matteo.gmuer1@ost.ch>2024-11-01 15:10:30 +0000
committerMatteo Gmür <matteo.gmuer1@ost.ch>2024-11-01 15:10:30 +0000
commit86f19267c7ca4e14ac6169f758130b3c27e62cdb (patch)
tree3f9f77d6489d207f5bd0452cdd6d5fe7bf1681b0 /arch/x86_64/src
parent08875c9c42c94dd23b16baa70b2be60cf35eb253 (diff)
downloadteachos-86f19267c7ca4e14ac6169f758130b3c27e62cdb.tar.xz
teachos-86f19267c7ca4e14ac6169f758130b3c27e62cdb.zip
Resolve compilation issues
Diffstat (limited to 'arch/x86_64/src')
-rw-r--r--arch/x86_64/src/memory/paging/active_page_table.cpp5
-rw-r--r--arch/x86_64/src/memory/paging/kernel_mapper.cpp17
2 files changed, 12 insertions, 10 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 38696f8..844ae37 100644
--- a/arch/x86_64/src/memory/paging/active_page_table.cpp
+++ b/arch/x86_64/src/memory/paging/active_page_table.cpp
@@ -2,11 +2,6 @@
namespace teachos::arch::memory::paging
{
- namespace
- {
- std::size_t constexpr PAGE_TABLE_LEVEL_4_ADDRESS = 0xffffffff'fffff000;
- } // namespace
-
auto active_page_table::create_or_get() -> active_page_table &
{
static page_table_handle active_handle{reinterpret_cast<page_table *>(PAGE_TABLE_LEVEL_4_ADDRESS),
diff --git a/arch/x86_64/src/memory/paging/kernel_mapper.cpp b/arch/x86_64/src/memory/paging/kernel_mapper.cpp
index 9dfc5ad..59930fc 100644
--- a/arch/x86_64/src/memory/paging/kernel_mapper.cpp
+++ b/arch/x86_64/src/memory/paging/kernel_mapper.cpp
@@ -2,12 +2,19 @@
namespace teachos::arch::memory::paging
{
- auto with(inactive_page_table inactive_page_table, temporary_page temporary_page,
- active_page_table::function f) -> void
+ kernel_mapper::kernel_mapper(active_page_table & active_table)
+ : active_table(active_table)
{
- /*active_handle[511].set_entry(inactive_page_table.page_table_level_4_frame, entry::PRESENT | entry::WRITABLE);
- invalidate_page_cache(PAGE_TABLE_LEVEL_4_ADDRESS);
+ // Nothing to do
+ }
+
+ auto kernel_mapper::with(inactive_page_table inactive_page_table, temporary_page temporary_page,
+ active_page_table::function f) -> void
+ {
+ active_table.active_handle[511].set_entry(inactive_page_table.page_table_level_4_frame,
+ entry::PRESENT | entry::WRITABLE);
+ active_page_table::invalidate_page_cache(PAGE_TABLE_LEVEL_4_ADDRESS);
- f(*this);*/
+ f(active_table);
}
} // namespace teachos::arch::memory::paging