1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 03:27:44 +00:00
serenity/Kernel
Brian Gianforcaro 27e1120dff Kernel: Move syscall precondition validates to MM
Move these to MM to simplify the flow of the syscall handler.

While here, also make sure we hold the process space lock for
the duration of the validation to avoid potential issues where
another thread attempts to modify the process space during the
validation. This will allow us to move the validation out of the
big process lock scope in a future change.

Additionally utilize the new no_lock variants of functions to avoid
unnecessary recursive process space spinlock acquisitions.
2021-07-20 03:21:14 +02:00
..
ACPI Kernel: Don't truncate physical address in ACPI table to 32 bits 2021-07-18 22:09:05 +02:00
API Kernel: Instrument syscalls with their process big lock requirements 2021-07-20 03:21:14 +02:00
Arch Kernel: No lock validate_user_stack variant, switch to Space as argument 2021-07-20 03:21:14 +02:00
Bus Kernel/USB: Remove unneeded friend declaration in SysFSUSBBusDirectory 2021-07-18 01:53:04 +02:00
Devices Kernel: Rename Lock to Mutex 2021-07-17 21:10:32 +02:00
FileSystem VirtualFileSystem: Check for '.' '..' and empty filenames 2021-07-19 18:20:34 +02:00
Graphics Kernel: Clean up VirtIOGPU class interfaces 2021-07-18 19:58:17 +04:30
Heap Kernel+AK: Generate compile-time error for non-sized delete 2021-07-16 20:51:13 +02:00
Interrupts Kernel: Remove unused header includes in Interrupts subtree 2021-07-11 21:37:38 +02:00
Modules Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
Net Kernel/E1000: Consolidate RX and TX buffer regions 2021-07-19 02:16:24 +02:00
Prekernel Prekernel: Make sure we're not overwriting the ELF header 2021-07-20 01:50:55 +02:00
Storage Kernel: Rename Locker => MutexLocker 2021-07-18 01:53:04 +02:00
Syscalls Kernel: No lock validate_user_stack variant, switch to Space as argument 2021-07-20 03:21:14 +02:00
Tasks Kernel: Make VirtualFileSystem::sync() static 2021-07-11 00:26:17 +02:00
Time Everywhere: Make tracking cpu usage independent from system ticks 2021-07-18 22:08:26 +02:00
TTY Kernel: Rename Locker => MutexLocker 2021-07-18 01:53:04 +02:00
VirtIO Kernel: Fix inverted check in VirtIOConsolePort 2021-07-14 12:33:07 +02:00
VM Kernel: Move syscall precondition validates to MM 2021-07-20 03:21:14 +02:00
AddressSanitizer.cpp Everywhere: Use bgianf@serenityos.org for my copyright attribution 2021-04-22 21:15:54 +02:00
AddressSanitizer.h Everywhere: Use bgianf@serenityos.org for my copyright attribution 2021-04-22 21:15:54 +02:00
Assertions.h Kernel: Add [[unlikely]] attribute to VERIFY 2021-06-29 22:57:52 +04:30
AtomicEdgeAction.h Kernel: Add AtomicEdgeAction class 2021-07-07 21:57:01 +02:00
CMakeLists.txt Kernel: Use a different kernel load address for x86_64 2021-07-18 17:31:13 +02:00
CMOS.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
CMOS.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
CommandLine.cpp Kernel: Move special sections into Sections.h 2021-06-24 00:38:23 +02:00
CommandLine.h Kernel/CommandLine: Add option to disable physical networking hardware 2021-06-09 22:44:09 +04:30
ConsoleDevice.cpp Kernel: Move special sections into Sections.h 2021-06-24 00:38:23 +02:00
ConsoleDevice.h Kernel: Make various T::class_name() and similar return StringView 2021-07-11 01:46:59 +02:00
CoreDump.cpp Kernel: Rename VFS => VirtualFileSystem 2021-07-11 00:25:24 +02:00
CoreDump.h Kernel: Use Forward.h headers more 2021-07-11 14:14:51 +02:00
Debug.h.in USB: Further Implement USB Structures 2021-06-12 18:17:25 +04:30
DoubleBuffer.cpp Kernel: Rename Locker => MutexLocker 2021-07-18 01:53:04 +02:00
DoubleBuffer.h Kernel: Rename Lock to Mutex 2021-07-17 21:10:32 +02:00
embedmap.sh Kernel: Make new kernel build process work on macOS 2021-07-15 11:04:30 +02:00
Forward.h Kernel/USB: Move USB bus information from /proc to /sys 2021-07-18 00:55:16 +02:00
FutexQueue.cpp Kernel: Fix futex race that could lead to thread waiting forever 2021-07-07 10:05:55 +02:00
FutexQueue.h Kernel: Fix futex race that could lead to thread waiting forever 2021-07-07 10:05:55 +02:00
GlobalProcessExposed.cpp Everywhere: Make tracking cpu usage independent from system ticks 2021-07-18 22:08:26 +02:00
init.cpp Kernel: Rename bootloader to prekernel 2021-07-18 22:08:03 +02:00
IO.h Kernel: Specify I/O size for BMIDEChannel 2021-06-28 15:55:00 +02:00
KBuffer.h Kernel: Fix always-true comparison warnings 2021-07-03 01:56:31 +04:30
KBufferBuilder.cpp Everywhere: Use nothrow new with adopt_{ref,own}_if_nonnull 2021-06-24 17:35:49 +04:30
KBufferBuilder.h Kernel: Avoid allocations in KBufferBuilder::appendff 2021-05-13 08:27:42 +02:00
KLexicalPath.cpp Kernel: Make KLexicalPath::basename() more compliant 2021-07-11 14:10:58 +02:00
KLexicalPath.h Kernel: Add KLexicalPath::try_join and use it 2021-07-07 15:32:17 +02:00
kprintf.cpp Kernel: Add dbgputch() to kstdio.h 2021-06-24 10:29:09 +02:00
KResult.h AK+Kernel: Fix perfect forwarding constructors shadowing others 2021-07-08 10:11:00 +02:00
kstdio.h Kernel: Add dbgputch() to kstdio.h 2021-06-24 10:29:09 +02:00
KString.cpp Kernel: Allow passing null pointer to delete 2021-07-14 13:12:25 +02:00
KString.h Kernel: Add formatter function for OwnPtr<KString> 2021-07-07 15:32:17 +02:00
KSyms.cpp Kernel: Introduce basic pre-kernel environment 2021-07-18 17:31:13 +02:00
KSyms.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
linker_amd64.ld Kernel: Make sure super pages are in the first 16MiB of physical memory 2021-07-19 11:29:09 +02:00
linker_i386.ld Kernel: Make sure super pages are in the first 16MiB of physical memory 2021-07-19 11:29:09 +02:00
LockMode.h Kernel: Allow Lock to block from BlockCondition 2021-07-12 11:27:18 +02:00
MiniStdLib.cpp Kernel: Introduce basic pre-kernel environment 2021-07-18 17:31:13 +02:00
mkmap.sh Kernel: Introduce basic pre-kernel environment 2021-07-18 17:31:13 +02:00
Module.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
Multiboot.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
Mutex.cpp Kernel: Rename Lock to Mutex 2021-07-17 21:10:32 +02:00
Mutex.h Kernel: Rename Locker => MutexLocker 2021-07-18 01:53:04 +02:00
Panic.cpp Kernel: Pull apart CPU.h 2021-06-24 00:38:23 +02:00
Panic.h Kernel/Graphics + SystemServer: Support text mode properly 2021-05-16 19:58:33 +02:00
PerformanceEventBuffer.cpp Kernel: Rename PerformanceEvent methods to be more ARCH independent 2021-07-19 08:46:55 +02:00
PerformanceEventBuffer.h Kernel: Rename PerformanceEvent methods to be more ARCH independent 2021-07-19 08:46:55 +02:00
PerformanceManager.h Kernel: Rename PerformanceEvent methods to be more ARCH independent 2021-07-19 08:46:55 +02:00
PhysicalAddress.h Kernel: Move PhysicalPage classes out of the heap into an array 2021-07-08 11:43:34 +02:00
Process.cpp Kernel: Add .profile extension to perfcore files 2021-07-18 19:01:57 +02:00
Process.h Kernel: Instrument syscalls with their process big lock requirements 2021-07-20 03:21:14 +02:00
ProcessExposed.cpp Kernel: Rename Locker => MutexLocker 2021-07-18 01:53:04 +02:00
ProcessExposed.h Kernel/USB: Move USB bus information from /proc to /sys 2021-07-18 00:55:16 +02:00
ProcessGroup.cpp Kernel: Standardize the header include style to 'include <Kernel/...>' 2021-07-11 21:37:38 +02:00
ProcessGroup.h Kernel: Rename Lock to Mutex 2021-07-17 21:10:32 +02:00
ProcessSpecificExposed.cpp Kernel: Rename Locker => MutexLocker 2021-07-18 01:53:04 +02:00
Random.cpp Kernel: Rename Locker => MutexLocker 2021-07-18 01:53:04 +02:00
Random.h Kernel: Rename Lock to Mutex 2021-07-17 21:10:32 +02:00
RTC.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
RTC.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
Scheduler.cpp Kernel: Push ARCH specific ifdef's down into RegisterState functions 2021-07-19 08:46:55 +02:00
Scheduler.h Everywhere: Make tracking cpu usage independent from system ticks 2021-07-18 22:08:26 +02:00
Sections.h Kernel: Hand out 64-bit addresses to userspace 2021-07-18 17:31:13 +02:00
SpinLock.h Kernel: Pull apart CPU.h 2021-06-24 00:38:23 +02:00
StdLib.cpp Kernel: Introduce basic pre-kernel environment 2021-07-18 17:31:13 +02:00
StdLib.h Everywhere: Fix incorrect usages of AK::Checked 2021-07-04 20:08:28 +01:00
Syscall.cpp Kernel: Move syscall precondition validates to MM 2021-07-20 03:21:14 +02:00
Thread.cpp Kernel: Push ARCH specific ifdef's down into RegisterState functions 2021-07-19 08:46:55 +02:00
Thread.h Kernel: Push ARCH specific ifdef's down into RegisterState functions 2021-07-19 08:46:55 +02:00
ThreadBlockers.cpp Kernel: Fix bogus check in Thread::WaitBlockCondition::finalize() 2021-07-16 15:18:47 +02:00
ThreadTracer.cpp Kernel: Remove unused header includes in root kernel tree 2021-07-11 21:37:38 +02:00
ThreadTracer.h Everywhere: Use nothrow new with adopt_{ref,own}_if_nonnull 2021-06-24 17:35:49 +04:30
TimerQueue.cpp Kernel: Fix deadlock cancelling timer 2021-07-12 11:27:18 +02:00
TimerQueue.h Kernel: Fix deadlock cancelling timer 2021-07-12 11:27:18 +02:00
UBSanitizer.cpp Kernel: Pull apart CPU.h 2021-06-24 00:38:23 +02:00
UnixTypes.h LibC: Define MSG_OOB 2021-06-04 10:39:41 +02:00
UnveilNode.h Kernel: Allow unveiling subfolders regardless of parent's permissions 2021-06-08 12:15:04 +02:00
UserOrKernelBuffer.cpp Kernel: Add an API for turning a UserOrKernelBuffer into a KString 2021-07-17 22:07:49 +02:00
UserOrKernelBuffer.h Kernel: Add an API for turning a UserOrKernelBuffer into a KString 2021-07-17 22:07:49 +02:00
VirtualAddress.h Kernel: Make VirtualAddress::page_base() work with 64-bit addresses 2021-07-18 17:31:13 +02:00
WaitQueue.cpp Everywhere: Use "the SerenityOS developers." in copyright headers 2021-04-29 00:59:26 +02:00
WaitQueue.h Everywhere: Use "the SerenityOS developers." in copyright headers 2021-04-29 00:59:26 +02:00
WorkQueue.cpp Kernel: Move special sections into Sections.h 2021-06-24 00:38:23 +02:00
WorkQueue.h Kernel: Use plain Function objects for the WorkQueue 2021-05-19 21:36:57 +02:00