ladybird/Kernel/VM
Andreas Kling f1b5def8fd Kernel: Factor address space management out of the Process class
This patch adds Space, a class representing a process's address space.

- Each Process has a Space.
- The Space owns the PageDirectory and all Regions in the Process.

This allows us to reorganize sys$execve() so that it constructs and
populates a new Space fully before committing to it.

Previously, we would construct the new address space while still
running in the old one, and encountering an error meant we had to do
tedious and error-prone rollback.

Those problems are now gone, replaced by what's hopefully a set of much
smaller problems and missing cleanups. :^)
2021-02-08 18:27:28 +01:00
..
AllocationStrategy.h Kernel: Merge PurgeableVMObject into AnonymousVMObject 2021-01-01 23:43:44 +01:00
AnonymousVMObject.cpp Everywhere: Replace dbgln<flag>(...) with dbgln_if(flag, ...) 2021-02-08 18:08:55 +01:00
AnonymousVMObject.h Kernel: Merge PurgeableVMObject into AnonymousVMObject 2021-01-01 23:43:44 +01:00
ContiguousVMObject.cpp Everywhere: Replace dbgln<flag>(...) with dbgln_if(flag, ...) 2021-02-08 18:08:55 +01:00
ContiguousVMObject.h Kernel: Allow specifying a physical alignment when allocating 2021-01-28 18:52:59 +01:00
InodeVMObject.cpp Everywhere: Remove some bitrotted "#if 0" blocks 2021-02-03 11:17:47 +01:00
InodeVMObject.h Kernel: Remove the limited use of AK::TypeTraits we had in the kernel 2021-01-01 15:32:44 +01:00
MappedROM.h Kernel: Fix various forward declarations 2020-09-12 13:46:15 +02:00
MemoryManager.cpp Kernel: Factor address space management out of the Process class 2021-02-08 18:27:28 +01:00
MemoryManager.h Kernel: Factor address space management out of the Process class 2021-02-08 18:27:28 +01:00
PageDirectory.cpp Kernel: Factor address space management out of the Process class 2021-02-08 18:27:28 +01:00
PageDirectory.h Kernel: Factor address space management out of the Process class 2021-02-08 18:27:28 +01:00
PageFaultResponse.h Kernel: Merge PurgeableVMObject into AnonymousVMObject 2021-01-01 23:43:44 +01:00
PhysicalPage.cpp Kernel: Remove MM_DEBUG debug spam code 2021-01-11 22:09:40 +01:00
PhysicalPage.h Kernel: Implement lazy committed page allocation 2021-01-01 23:43:44 +01:00
PhysicalRegion.cpp Kernel: Allow specifying a physical alignment when allocating 2021-01-28 18:52:59 +01:00
PhysicalRegion.h Kernel: Allow specifying a physical alignment when allocating 2021-01-28 18:52:59 +01:00
PrivateInodeVMObject.cpp Kernel: Implement lazy committed page allocation 2021-01-01 23:43:44 +01:00
PrivateInodeVMObject.h Kernel: Implement lazy committed page allocation 2021-01-01 23:43:44 +01:00
ProcessPagingScope.cpp Kernel: Turn Thread::current and Process::current into functions 2020-07-01 12:07:01 +02:00
ProcessPagingScope.h Kernel: Move ProcessPagingScope to its own files 2020-03-01 15:38:09 +01:00
PurgeablePageRanges.cpp Meta: Split debug defines into multiple headers. 2021-01-26 21:20:00 +01:00
PurgeablePageRanges.h Kernel: Merge PurgeableVMObject into AnonymousVMObject 2021-01-01 23:43:44 +01:00
RangeAllocator.cpp Kernel: RangeAllocator randomized correctly check if size is in bound. (#5164) 2021-01-29 17:18:23 +01:00
RangeAllocator.h Kernel+LibC: Add MAP_RANDOMIZED flag for sys$mmap() 2021-01-28 16:23:38 +01:00
Region.cpp Everywhere: Replace dbgln<flag>(...) with dbgln_if(flag, ...) 2021-02-08 18:08:55 +01:00
Region.h Kernel: Add a way to specify which memory regions can make syscalls 2021-02-02 20:13:44 +01:00
SharedInodeVMObject.cpp Kernel: Release MM lock while yielding from inode page fault handler 2021-01-27 22:48:41 +01:00
SharedInodeVMObject.h Kernel: Implement lazy committed page allocation 2021-01-01 23:43:44 +01:00
Space.cpp Kernel: Factor address space management out of the Process class 2021-02-08 18:27:28 +01:00
Space.h Kernel: Factor address space management out of the Process class 2021-02-08 18:27:28 +01:00
TypedMapping.h Kernel: Add non-const version of TypedMapping::operator->() 2020-05-23 15:57:19 +02:00
VMObject.cpp Kernel: Some futex improvements 2021-01-17 20:30:31 +01:00
VMObject.h Kernel: Some futex improvements 2021-01-17 20:30:31 +01:00