ladybird/Kernel/FileSystem
Andreas Kling 30861daa93 Kernel: Simplify the File memory-mapping API
Before this change, we had File::mmap() which did all the work of
setting up a VMObject, and then creating a Region in the current
process's address space.

This patch simplifies the interface by removing the region part.
Files now only have to return a suitable VMObject from
vmobject_for_mmap(), and then sys$mmap() itself will take care of
actually mapping it into the address space.

This fixes an issue where we'd try to block on I/O (for inode metadata
lookup) while holding the address space spinlock. It also reduces time
spent holding the address space lock.
2022-08-24 14:57:51 +02:00
..
SysFS Kernel: Update atime/ctime/mtime timestamps atomically 2022-08-22 17:56:03 +02:00
AnonymousFile.cpp Kernel: Simplify the File memory-mapping API 2022-08-24 14:57:51 +02:00
AnonymousFile.h Kernel: Simplify the File memory-mapping API 2022-08-24 14:57:51 +02:00
BlockBasedFileSystem.cpp Kernel: Annotate all KBuffer and DoubleBuffer with a custom name 2022-07-12 00:55:31 +01:00
BlockBasedFileSystem.h Everywhere: Prefix 'TYPEDEF_DISTINCT_ORDERED_ID' with 'AK_' 2022-07-22 23:09:43 +01:00
Custody.cpp Kernel: Use RefPtr instead of LockRefPtr for Custody 2022-08-21 12:25:14 +02:00
Custody.h Kernel: Use RefPtr instead of LockRefPtr for Custody 2022-08-21 12:25:14 +02:00
DeviceFileTypes.h Everywhere: Prefix 'TYPEDEF_DISTINCT_ORDERED_ID' with 'AK_' 2022-07-22 23:09:43 +01:00
DevPtsFS.cpp Kernel: Make self-contained locking smart pointers their own classes 2022-08-20 17:20:43 +02:00
DevPtsFS.h Kernel: Make self-contained locking smart pointers their own classes 2022-08-20 17:20:43 +02:00
DevTmpFS.cpp Kernel: Make self-contained locking smart pointers their own classes 2022-08-20 17:20:43 +02:00
DevTmpFS.h Kernel: Make self-contained locking smart pointers their own classes 2022-08-20 17:20:43 +02:00
ext2_fs.h Everywhere: Fix spelling mistakes 2022-01-07 15:44:42 +01:00
ext2_types.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
Ext2FileSystem.cpp Kernel: Update atime/ctime/mtime timestamps atomically 2022-08-22 17:56:03 +02:00
Ext2FileSystem.h Kernel: Update atime/ctime/mtime timestamps atomically 2022-08-22 17:56:03 +02:00
FIFO.cpp Kernel: Make self-contained locking smart pointers their own classes 2022-08-20 17:20:43 +02:00
FIFO.h Kernel: Make self-contained locking smart pointers their own classes 2022-08-20 17:20:43 +02:00
File.cpp Kernel: Simplify the File memory-mapping API 2022-08-24 14:57:51 +02:00
File.h Kernel: Simplify the File memory-mapping API 2022-08-24 14:57:51 +02:00
FileBackedFileSystem.cpp Kernel: Use default constructors/destructors 2022-03-17 00:51:36 -07:00
FileBackedFileSystem.h Kernel: Make self-contained locking smart pointers their own classes 2022-08-20 17:20:43 +02:00
FileSystem.cpp Kernel: Make self-contained locking smart pointers their own classes 2022-08-20 17:20:43 +02:00
FileSystem.h Kernel: Make self-contained locking smart pointers their own classes 2022-08-20 17:20:43 +02:00
Inode.cpp Kernel: Update atime/ctime/mtime timestamps atomically 2022-08-22 17:56:03 +02:00
Inode.h Kernel: Update atime/ctime/mtime timestamps atomically 2022-08-22 17:56:03 +02:00
InodeFile.cpp Kernel: Simplify the File memory-mapping API 2022-08-24 14:57:51 +02:00
InodeFile.h Kernel: Simplify the File memory-mapping API 2022-08-24 14:57:51 +02:00
InodeIdentifier.h Everywhere: Prefix 'TYPEDEF_DISTINCT_ORDERED_ID' with 'AK_' 2022-07-22 23:09:43 +01:00
InodeMetadata.cpp Kernel: Make VirtualFileSystem functions take credentials as input 2022-08-21 16:02:24 +02:00
InodeMetadata.h Kernel: Make VirtualFileSystem functions take credentials as input 2022-08-21 16:02:24 +02:00
InodeWatcher.cpp Kernel: Make self-contained locking smart pointers their own classes 2022-08-20 17:20:43 +02:00
InodeWatcher.h Kernel: Make self-contained locking smart pointers their own classes 2022-08-20 17:20:43 +02:00
ISO9660FileSystem.cpp Kernel: Update atime/ctime/mtime timestamps atomically 2022-08-22 17:56:03 +02:00
ISO9660FileSystem.h Kernel: Update atime/ctime/mtime timestamps atomically 2022-08-22 17:56:03 +02:00
Mount.cpp Kernel: Use RefPtr instead of LockRefPtr for Custody 2022-08-21 12:25:14 +02:00
Mount.h Kernel: Use RefPtr instead of LockRefPtr for Custody 2022-08-21 12:25:14 +02:00
OpenFileDescription.cpp Kernel: Simplify the File memory-mapping API 2022-08-24 14:57:51 +02:00
OpenFileDescription.h Kernel: Simplify the File memory-mapping API 2022-08-24 14:57:51 +02:00
Plan9FileSystem.cpp Kernel: Make self-contained locking smart pointers their own classes 2022-08-20 17:20:43 +02:00
Plan9FileSystem.h Kernel: Make self-contained locking smart pointers their own classes 2022-08-20 17:20:43 +02:00
ProcFS.cpp Kernel/ProcFS: Silently ignore attempts to update ProcFS timestamps 2022-08-23 01:00:40 +02:00
ProcFS.h Kernel/ProcFS: Silently ignore attempts to update ProcFS timestamps 2022-08-23 01:00:40 +02:00
SysFS.cpp Kernel/SysFS: Silently ignore attempts to update SysFS timestamps 2022-08-23 00:55:41 +02:00
SysFS.h Kernel/SysFS: Silently ignore attempts to update SysFS timestamps 2022-08-23 00:55:41 +02:00
TmpFS.cpp Kernel: Update atime/ctime/mtime timestamps atomically 2022-08-22 17:56:03 +02:00
TmpFS.h Kernel: Update atime/ctime/mtime timestamps atomically 2022-08-22 17:56:03 +02:00
UnveilNode.h AK+Kernel: Specialize Trie for NNOP<KString> and use it in UnveilNode 2022-02-16 22:21:37 +01:00
VirtualFileSystem.cpp Kernel: Update atime/ctime/mtime timestamps atomically 2022-08-22 17:56:03 +02:00
VirtualFileSystem.h Kernel: Make VirtualFileSystem functions take credentials as input 2022-08-21 16:02:24 +02:00