ladybird/Kernel/Devices
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
..
USB Meta: Split debug defines into multiple headers. 2021-01-26 21:20:00 +01:00
AsyncDeviceRequest.cpp Everywhere: Fix more typos 2020-12-31 01:47:41 +01:00
AsyncDeviceRequest.h Kernel: Implement an asynchronous device request stack 2020-11-12 18:04:30 +01:00
BlockDevice.cpp Everywhere: Replace a bundle of dbg with dbgln. 2021-01-11 11:55:47 +01:00
BlockDevice.h Kernel: Return a correct name string of async write request 2020-12-17 19:36:56 +01:00
BXVGADevice.cpp Kernel: Factor address space management out of the Process class 2021-02-08 18:27:28 +01:00
BXVGADevice.h Kernel: Hoist VM range allocation up to sys$mmap() itself 2021-01-25 18:57:06 +01:00
CharacterDevice.cpp Kernel: Move all code into the Kernel namespace 2020-02-16 01:27:42 +01:00
CharacterDevice.h Kernel: Move all code into the Kernel namespace 2020-02-16 01:27:42 +01:00
Device.cpp Kernel: Convert a bunch of String::format() => String::formatted() 2021-01-11 22:07:01 +01:00
Device.h Kernel: Make device generate their own names 2021-01-22 22:17:39 +01:00
FullDevice.cpp Kernel+LibC: Turn errno codes into a strongly typed enum 2021-01-20 23:20:02 +01:00
FullDevice.h Kernel: Make device generate their own names 2021-01-22 22:17:39 +01:00
I8042Controller.cpp Everywhere: Replace a bundle of dbg with dbgln. 2021-01-11 11:55:47 +01:00
I8042Controller.h Kernel: Add I8042Controller to detect and manage PS/2 devices 2020-11-12 18:04:16 +01:00
KeyboardDevice.cpp Base: Rename some keymaps to use xx-xx format where appropriate 2021-02-02 16:53:11 +01:00
KeyboardDevice.h Kernel+LibKeyboard: Define the default keymap only in one place 2021-02-01 09:54:32 +01:00
MBVGADevice.cpp Kernel: Factor address space management out of the Process class 2021-02-08 18:27:28 +01:00
MBVGADevice.h Kernel: Hoist VM range allocation up to sys$mmap() itself 2021-01-25 18:57:06 +01:00
MemoryDevice.cpp Kernel: Factor address space management out of the Process class 2021-02-08 18:27:28 +01:00
MemoryDevice.h Kernel: Introduce the MemoryDevice 2021-02-01 17:13:23 +01:00
NullDevice.cpp Kernel: Make copy_to/from_user safe and remove unnecessary checks 2020-09-13 21:19:15 +02:00
NullDevice.h Kernel: Make device generate their own names 2021-01-22 22:17:39 +01:00
PCSpeaker.cpp Meta+Kernel: Make clang-format-10 clean 2020-09-25 21:18:17 +02:00
PCSpeaker.h Meta: Add license header to source files 2020-01-18 09:45:54 +01:00
PS2MouseDevice.cpp Everywhere: Replace dbgln<flag>(...) with dbgln_if(flag, ...) 2021-02-08 18:08:55 +01:00
PS2MouseDevice.h Kernel: Make device generate their own names 2021-01-22 22:17:39 +01:00
RandomDevice.cpp Kernel+LibC: Turn errno codes into a strongly typed enum 2021-01-20 23:20:02 +01:00
RandomDevice.h Kernel: Make device generate their own names 2021-01-22 22:17:39 +01:00
SB16.cpp Kernel: Try to detect Sound Blaster 16 before creating an instance 2021-02-05 08:54:02 +01:00
SB16.h Kernel: Try to detect Sound Blaster 16 before creating an instance 2021-02-05 08:54:02 +01:00
SerialDevice.cpp Kernel: Make device generate their own names 2021-01-22 22:17:39 +01:00
SerialDevice.h Kernel: Make device generate their own names 2021-01-22 22:17:39 +01:00
VMWareBackdoor.cpp Everywhere: Replace dbgln<flag>(...) with dbgln_if(flag, ...) 2021-02-08 18:08:55 +01:00
VMWareBackdoor.h Kernel: Switch singletons to use new Singleton class 2020-08-25 09:48:48 +02:00
ZeroDevice.cpp Kernel+LibC: Turn errno codes into a strongly typed enum 2021-01-20 23:20:02 +01:00
ZeroDevice.h Kernel: Make device generate their own names 2021-01-22 22:17:39 +01:00