From 1ab2722850867339c3d26ba48d7112d8d9c35834 Mon Sep 17 00:00:00 2001 From: Bananymous Date: Fri, 22 Mar 2024 15:13:33 +0200 Subject: [PATCH] Kernel: Add PageTable stub to progress linking --- kernel/CMakeLists.txt | 1 + kernel/arch/i386/PageTable.cpp | 144 +++++++++++++++++++++++++++++++++ 2 files changed, 145 insertions(+) create mode 100644 kernel/arch/i386/PageTable.cpp diff --git a/kernel/CMakeLists.txt b/kernel/CMakeLists.txt index 6cd5e41f..bb58d1b6 100644 --- a/kernel/CMakeLists.txt +++ b/kernel/CMakeLists.txt @@ -124,6 +124,7 @@ elseif("${BANAN_ARCH}" STREQUAL "i386") set(KERNEL_SOURCES ${KERNEL_SOURCES} arch/i386/boot.S + arch/i386/PageTable.cpp arch/i386/SpinLock.S arch/i386/Syscall.S arch/i386/Thread.S diff --git a/kernel/arch/i386/PageTable.cpp b/kernel/arch/i386/PageTable.cpp new file mode 100644 index 00000000..fe28366c --- /dev/null +++ b/kernel/arch/i386/PageTable.cpp @@ -0,0 +1,144 @@ +#include +#include + +namespace Kernel +{ + + RecursiveSpinLock PageTable::s_fast_page_lock; + + void PageTable::initialize() + { + ASSERT_NOT_REACHED(); + } + + PageTable& PageTable::kernel() + { + ASSERT_NOT_REACHED(); + } + + bool PageTable::is_valid_pointer(uintptr_t) + { + ASSERT_NOT_REACHED(); + } + + BAN::ErrorOr PageTable::create_userspace() + { + ASSERT_NOT_REACHED(); + } + + PageTable::~PageTable() + { + ASSERT_NOT_REACHED(); + } + + void PageTable::unmap_page(vaddr_t) + { + ASSERT_NOT_REACHED(); + } + + void PageTable::unmap_range(vaddr_t, size_t) + { + ASSERT_NOT_REACHED(); + } + + void PageTable::map_range_at(paddr_t, vaddr_t, size_t, flags_t) + { + ASSERT_NOT_REACHED(); + } + + void PageTable::map_page_at(paddr_t, vaddr_t, flags_t) + { + ASSERT_NOT_REACHED(); + } + + paddr_t PageTable::physical_address_of(vaddr_t) const + { + ASSERT_NOT_REACHED(); + } + + PageTable::flags_t PageTable::get_page_flags(vaddr_t) const + { + ASSERT_NOT_REACHED(); + } + + bool PageTable::is_page_free(vaddr_t) const + { + ASSERT_NOT_REACHED(); + } + + bool PageTable::is_range_free(vaddr_t, size_t) const + { + ASSERT_NOT_REACHED(); + } + + bool PageTable::reserve_page(vaddr_t, bool) + { + ASSERT_NOT_REACHED(); + } + + bool PageTable::reserve_range(vaddr_t, size_t, bool) + { + ASSERT_NOT_REACHED(); + } + + vaddr_t PageTable::reserve_free_page(vaddr_t, vaddr_t) + { + ASSERT_NOT_REACHED(); + } + + vaddr_t PageTable::reserve_free_contiguous_pages(size_t, vaddr_t, vaddr_t) + { + ASSERT_NOT_REACHED(); + } + + void PageTable::load() + { + ASSERT_NOT_REACHED(); + } + + void PageTable::initial_load() + { + ASSERT_NOT_REACHED(); + } + + void PageTable::debug_dump() + { + ASSERT_NOT_REACHED(); + } + + uint64_t PageTable::get_page_data(vaddr_t) const + { + ASSERT_NOT_REACHED(); + } + + void PageTable::initialize_kernel() + { + ASSERT_NOT_REACHED(); + } + + void PageTable::map_kernel_memory() + { + ASSERT_NOT_REACHED(); + } + + void PageTable::prepare_fast_page() + { + ASSERT_NOT_REACHED(); + } + + void PageTable::invalidate(vaddr_t) + { + ASSERT_NOT_REACHED(); + } + + void PageTable::map_fast_page(paddr_t) + { + ASSERT_NOT_REACHED(); + } + + void PageTable::unmap_fast_page() + { + ASSERT_NOT_REACHED(); + } + +}