summaryrefslogtreecommitdiff
path: root/Kernel/Arch/aarch64/PageDirectory.cpp
AgeCommit message (Collapse)Author
2023-06-04Kernel: Move InterruptDisabler to the Interrupts subdirectoryLiav A
2023-06-04Kernel: Move Random.{h,cpp} code to Security subdirectoryLiav A
2023-06-04Kernel: Move all tasks-related code to the Tasks subdirectoryLiav A
2023-04-06Kernel/aarch64: Flush entire TLB cache when changing TTBR0_EL1Timon Kruiper
Setting the page table base register (ttbr0_el1) is not enough, and will not flush the TLB caches, in contrary with x86_64 where setting the CR3 register will actually flush the caches. This commit adds the necessary code to properly flush the TLB caches when context switching. This commit also changes Processor::flush_tlb_local to use the vmalle1 variant, as previously we would be flushing the tlb's of all the cores in the inner-shareable domain.
2023-04-06Kernel: Store a pointer to the owner process in PageDirectoryIdan Horowitz
This replaces the previous owning address space pointer. This commit should not change any of the existing functionality, but it lays down the groundwork needed to let us properly access the region table under the address space spinlock during page fault handling.
2023-01-27Kernel/aarch64: Implement switching page directoriesTimon Kruiper
The code in PageDirectory.cpp now keeps track of the registered page directories, and actually sets the TTBR0_EL1 to the page table base of the currently executing thread. When context switching, we now also change the TTBR0_EL1 to the page table base of the thread that we context switch into.
2023-01-27Kernel: Move Memory/PageDirectory.{cpp,h} to arch-specific directoryTimon Kruiper
The handling of page tables is very architecture specific, so belongs in the Arch directory. Some parts were already architecture-specific, however this commit moves the rest of the PageDirectory class into the Arch directory. While we're here the aarch64/PageDirectory.{h,cpp} files are updated to be aarch64 specific, by renaming some members and removing x86_64 specific code.
2022-12-29Kernel/aarch64: Add FIXME debug messages to PageDirectoryTimon Kruiper
These are added to make clear that the current memory situation in the aarch64 kernel is not complete yet.
2022-10-16Kernel: Replace VERIFY_NOT_REACHED with TODO_AARCH64Gunnar Beutner
This makes it easier to differentiate between cases where certain functionality is not implemented vs. cases where a code location should really be unreachable.
2022-09-12Kernel: Add basic aarch64 support to `MemoryManager`Filiph Sandström
FIXME: There's still a lot to do like for example, port `quickmap_page`. This does however get us further into the boot process than before.
2022-08-20Kernel: Make self-contained locking smart pointers their own classesAndreas Kling
Until now, our kernel has reimplemented a number of AK classes to provide automatic internal locking: - RefPtr - NonnullRefPtr - WeakPtr - Weakable This patch renames the Kernel classes so that they can coexist with the original AK classes: - RefPtr => LockRefPtr - NonnullRefPtr => NonnullLockRefPtr - WeakPtr => LockWeakPtr - Weakable => LockWeakable The goal here is to eventually get rid of the Lock* classes in favor of using external locking.
2022-04-04Kernel: Add VERIFY_NOT_REACHED to aarch64 PageDirectory.cppJames Mintram
2022-04-02Kernel: Make MemoryManager compile on aarch64James Mintram