ladybird/Kernel/Devices
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
..
Audio Kernel: Make self-contained locking smart pointers their own classes 2022-08-20 17:20:43 +02:00
HID Kernel: Make self-contained locking smart pointers their own classes 2022-08-20 17:20:43 +02:00
AsyncDeviceRequest.cpp Kernel: Make self-contained locking smart pointers their own classes 2022-08-20 17:20:43 +02:00
AsyncDeviceRequest.h Kernel: Make self-contained locking smart pointers their own classes 2022-08-20 17:20:43 +02:00
BlockDevice.cpp Kernel/Devices: Abstract SysFS Device add/remove methods more properly 2022-07-19 11:02:37 +01:00
BlockDevice.h Kernel: Make self-contained locking smart pointers their own classes 2022-08-20 17:20:43 +02:00
CharacterDevice.cpp Kernel/Devices: Abstract SysFS Device add/remove methods more properly 2022-07-19 11:02:37 +01:00
CharacterDevice.h Kernel/Devices: Abstract SysFS Device add/remove methods more properly 2022-07-19 11:02:37 +01:00
ConsoleDevice.cpp Kernel: Make self-contained locking smart pointers their own classes 2022-08-20 17:20:43 +02:00
ConsoleDevice.h Kernel: Make self-contained locking smart pointers their own classes 2022-08-20 17:20:43 +02:00
Device.cpp Kernel/Devices: Abstract SysFS Device add/remove methods more properly 2022-07-19 11:02:37 +01:00
Device.h Kernel: Make self-contained locking smart pointers their own classes 2022-08-20 17:20:43 +02:00
DeviceControlDevice.cpp Kernel: Make self-contained locking smart pointers their own classes 2022-08-20 17:20:43 +02:00
DeviceControlDevice.h Kernel: Make self-contained locking smart pointers their own classes 2022-08-20 17:20:43 +02:00
DeviceManagement.cpp Kernel: Add DeviceManagement::try_for_each() for fallible iteration 2022-02-27 20:37:57 +01:00
DeviceManagement.h Kernel: Make self-contained locking smart pointers their own classes 2022-08-20 17:20:43 +02:00
FullDevice.cpp Kernel: Make self-contained locking smart pointers their own classes 2022-08-20 17:20:43 +02:00
FullDevice.h Kernel: Make self-contained locking smart pointers their own classes 2022-08-20 17:20:43 +02:00
KCOVDevice.cpp Kernel: Simplify the File memory-mapping API 2022-08-24 14:57:51 +02:00
KCOVDevice.h Kernel: Simplify the File memory-mapping API 2022-08-24 14:57:51 +02:00
KCOVInstance.cpp Kernel: Propagate overflow errors from Memory::page_round_up 2021-12-28 23:08:50 +01:00
KCOVInstance.h Kernel: Make self-contained locking smart pointers their own classes 2022-08-20 17:20:43 +02:00
MemoryDevice.cpp Kernel: Simplify the File memory-mapping API 2022-08-24 14:57:51 +02:00
MemoryDevice.h Kernel: Simplify the File memory-mapping API 2022-08-24 14:57:51 +02:00
NullDevice.cpp Kernel: Make self-contained locking smart pointers their own classes 2022-08-20 17:20:43 +02:00
NullDevice.h Kernel: Make self-contained locking smart pointers their own classes 2022-08-20 17:20:43 +02:00
PCISerialDevice.cpp Kernel/PCI: Don't hold spinlocks when doing fast device enumeration 2022-03-14 22:39:09 +01:00
PCISerialDevice.h Everywhere: Add sv suffix to strings relying on StringView(char const*) 2022-07-12 23:11:35 +02:00
PCSpeaker.cpp Kernel: Move x86 IO instructions code into the x86 specific folder 2021-10-01 12:27:20 +02:00
PCSpeaker.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
RandomDevice.cpp Kernel: Make self-contained locking smart pointers their own classes 2022-08-20 17:20:43 +02:00
RandomDevice.h Kernel: Make self-contained locking smart pointers their own classes 2022-08-20 17:20:43 +02:00
SelfTTYDevice.cpp Kernel: Make self-contained locking smart pointers their own classes 2022-08-20 17:20:43 +02:00
SelfTTYDevice.h Kernel: Make self-contained locking smart pointers their own classes 2022-08-20 17:20:43 +02:00
SerialDevice.cpp Kernel: Make self-contained locking smart pointers their own classes 2022-08-20 17:20:43 +02:00
SerialDevice.h Kernel: Make self-contained locking smart pointers their own classes 2022-08-20 17:20:43 +02:00
ZeroDevice.cpp Kernel: Make self-contained locking smart pointers their own classes 2022-08-20 17:20:43 +02:00
ZeroDevice.h Kernel: Make self-contained locking smart pointers their own classes 2022-08-20 17:20:43 +02:00