1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 13:18:13 +00:00
serenity/Kernel/FileSystem
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
..
AnonymousFile.cpp Kernel: Factor address space management out of the Process class 2021-02-08 18:27:28 +01:00
AnonymousFile.h Kernel: Hoist VM range allocation up to sys$mmap() itself 2021-01-25 18:57:06 +01:00
BlockBasedFileSystem.cpp Meta: Split debug defines into multiple headers. 2021-01-26 21:20:00 +01:00
BlockBasedFileSystem.h Kernel: Make BlockBasedFS read/write functions return a KResult 2021-01-20 22:57:36 +01:00
Custody.cpp Kernel: Support read-only filesystem mounts 2020-05-29 07:53:30 +02:00
Custody.h Kernel: Support read-only filesystem mounts 2020-05-29 07:53:30 +02:00
DevFS.cpp Kernel: Make device generate their own names 2021-01-22 22:17:39 +01:00
DevFS.h Kernel: Introduce the DevFS 2020-12-27 23:07:44 +01:00
DevPtsFS.cpp Kernel+LibC: Turn errno codes into a strongly typed enum 2021-01-20 23:20:02 +01:00
DevPtsFS.h Kernel: Make copy_to/from_user safe and remove unnecessary checks 2020-09-13 21:19:15 +02:00
ext2_fs.h Meta: Split debug defines into multiple headers. 2021-01-26 21:20:00 +01:00
ext2_types.h Everywhere: Re-format with clang-format-11 2020-12-31 21:51:00 +01:00
Ext2FileSystem.cpp Kernel: Don't create a zero-length VLA in Ext2FS block list walk 2021-02-05 21:23:11 +01:00
Ext2FileSystem.h Ext2FS: Avoid unnecessary parent inode lookup during inode creation 2021-02-02 18:58:26 +01:00
FIFO.cpp Meta: Split debug defines into multiple headers. 2021-01-26 21:20:00 +01:00
FIFO.h Kernel: Improve ProcFS behavior in low memory conditions 2021-01-03 22:12:19 +01:00
File.cpp Kernel: Hoist VM range allocation up to sys$mmap() itself 2021-01-25 18:57:06 +01:00
File.h Kernel: Hoist VM range allocation up to sys$mmap() itself 2021-01-25 18:57:06 +01:00
FileBackedFileSystem.cpp Kernel: Split BlockBasedFileSystem off FileBackedFileSystem 2020-07-05 12:26:27 +02:00
FileBackedFileSystem.h Kernel: Split BlockBasedFileSystem off FileBackedFileSystem 2020-07-05 12:26:27 +02:00
FileDescription.cpp Everywhere: Replace dbgln<flag>(...) with dbgln_if(flag, ...) 2021-02-08 18:08:55 +01:00
FileDescription.h Kernel: Hoist VM range allocation up to sys$mmap() itself 2021-01-25 18:57:06 +01:00
FileSystem.cpp Kernel: Switch singletons to use new Singleton class 2020-08-25 09:48:48 +02:00
FileSystem.h Meta+Kernel: Make clang-format-10 clean 2020-09-25 21:18:17 +02:00
Inode.cpp Kernel+LibC: Turn errno codes into a strongly typed enum 2021-01-20 23:20:02 +01:00
Inode.h Kernel: Add FIBMAP ioctl to Ext2FileSystem 2021-01-30 22:54:51 +01:00
InodeFile.cpp Kernel: Factor address space management out of the Process class 2021-02-08 18:27:28 +01:00
InodeFile.h Kernel: Add FIBMAP ioctl to Ext2FileSystem 2021-01-30 22:54:51 +01:00
InodeIdentifier.h Kernel: Convert a bunch of String::format() => String::formatted() 2021-01-11 22:07:01 +01:00
InodeMetadata.h Kernel+LibC: Turn errno codes into a strongly typed enum 2021-01-20 23:20:02 +01:00
InodeWatcher.cpp Kernel+LibC: Turn errno codes into a strongly typed enum 2021-01-20 23:20:02 +01:00
InodeWatcher.h Kernel: Move InodeWatcher::Event into Kernel/API/InodeWatcherEvent 2020-12-14 23:05:53 +01:00
Plan9FileSystem.cpp Kernel+LibC: Turn errno codes into a strongly typed enum 2021-01-20 23:20:02 +01:00
Plan9FileSystem.h Kernel: Specify default memory order for some non-synchronizing Atomics 2021-01-04 19:13:52 +01:00
ProcFS.cpp Kernel: Factor address space management out of the Process class 2021-02-08 18:27:28 +01:00
ProcFS.h Kernel+LibC: Turn errno codes into a strongly typed enum 2021-01-20 23:20:02 +01:00
TmpFS.cpp Kernel+LibC: Turn errno codes into a strongly typed enum 2021-01-20 23:20:02 +01:00
TmpFS.h TmpFS: Use fallible KBuffer API 2020-12-18 19:22:26 +01:00
VirtualFileSystem.cpp Everywhere: Replace dbgln<flag>(...) with dbgln_if(flag, ...) 2021-02-08 18:08:55 +01:00
VirtualFileSystem.h Kernel: Implement unveil() as a prefix-tree 2020-12-26 11:54:54 +01:00