serenity/Kernel
Brian Gianforcaro d838a02e74 Kernel: Add KString::must_{..} factory methods
There are a bunch of places like drivers which for all intense and
purposes can't really fail allocation during boot, and if they do
fail we should crash immediately.

This change adds `KString::must_create_uninitialized(..)` as well as
`KString::must_create(..)` for use during early boot initialization of
the Kernel. They enforce that they are only used during early boot.
2021-05-31 14:50:49 +04:30
..
ACPI Kernel: Remove usage of adopt_own in MultiProcessorParser 2021-05-29 09:04:05 +02:00
API Kernel: Add statvfs & fstatvfs Syscalls 2021-05-19 21:33:29 +02:00
Arch Kernel: Allow building the kernel with -O0 2021-05-28 19:52:22 +01:00
Devices Kernel: Let the user read/write more than one page from/to dev files 2021-05-27 09:30:19 +02:00
FileSystem Kernel: Ensure that an unveil node with no permission is never accepted 2021-05-29 22:05:34 +02:00
Graphics Kernel/Graphics: Remove unnecessary derived FramebufferDevice classes 2021-05-27 22:39:13 +02:00
Heap Kernel: Don't log profile data before/after the process/thread lifetime 2021-05-30 19:03:03 +02:00
Interrupts Kernel: Explicitly initialize bools in IOAPIC mapping 2021-05-27 10:21:30 +02:00
Modules
Net Kernel: Ignore duplicate SYN packets 2021-05-28 08:01:00 +02:00
PCI Kernel/PCI: Fix support of multiple PCI host controllers enumeration 2021-05-21 17:58:53 +01:00
Storage Kernel/Storage: Enable interrupts for AHCI ports if PHY is not enabled 2021-05-29 15:51:52 +02:00
Syscalls Kernel: Don't log profile data before/after the process/thread lifetime 2021-05-30 19:03:03 +02:00
Tasks Kernel: Pass trampolines instead of lambdas to create_kernel_process 2021-05-27 10:21:30 +02:00
Time Kernel: Fix return value for {enable,disable}_profile_timer() 2021-05-17 21:53:04 +02:00
TTY LibVT: Add Alternate Screen Buffer support 2021-05-24 22:26:54 +04:30
VirtIO Kernel: Reorder VirtIODevice PCI initialization steps 2021-05-15 23:29:03 +01:00
VM Everywhere: Sort out superfluous QuickSort.h imports 2021-05-29 23:41:54 +01:00
AddressSanitizer.cpp
AddressSanitizer.h
Assertions.h
CMakeLists.txt AK: Move RefCountedBase definitions out-of-line 2021-05-29 20:18:57 +02:00
CMOS.cpp
CMOS.h
CommandLine.cpp Kernel: Move CommandLine API to use AK::StringView instead of AK::String 2021-05-31 14:04:00 +04:30
CommandLine.h Kernel: Move CommandLine API to use AK::StringView instead of AK::String 2021-05-31 14:04:00 +04:30
ConsoleDevice.cpp Kernel: Rename Console => ConsoleDevice 2021-05-16 19:58:33 +02:00
ConsoleDevice.h Kernel: Rename Console => ConsoleDevice 2021-05-16 19:58:33 +02:00
CoreDump.cpp Kernel: Unnamed regions still need a null-terminator in core dumps 2021-05-30 20:00:03 +02:00
CoreDump.h
Debug.h.in Kernel/Graphics: Remove unnecessary derived FramebufferDevice classes 2021-05-27 22:39:13 +02:00
DMI.cpp
DMI.h
DoubleBuffer.cpp Kernel: Don't update write_pos in DoubleBuffer if userspace copy fails 2021-05-18 16:47:26 +02:00
DoubleBuffer.h Kernel: Implement peek() function for DoubleBuffer 2021-04-29 08:09:53 +02:00
Forward.h
FutexQueue.cpp Everywhere: Use "the SerenityOS developers." in copyright headers 2021-04-29 00:59:26 +02:00
FutexQueue.h Everywhere: Use "the SerenityOS developers." in copyright headers 2021-04-29 00:59:26 +02:00
init.cpp Kernel: Add KString::must_{..} factory methods 2021-05-31 14:50:49 +04:30
IO.h
KBuffer.h Kernel: Make KBuffer APIs OOM safe 2021-05-29 09:04:05 +02:00
KBufferBuilder.cpp Kernel: Replace make<T>() with adopt_own_if_nonnull() in KBufferBuilder 2021-05-13 16:21:53 +02:00
KBufferBuilder.h Kernel: Avoid allocations in KBufferBuilder::appendff 2021-05-13 08:27:42 +02:00
kprintf.cpp Kernel: Implement a PCI Serial Device driver 2021-05-17 18:15:25 +02:00
KResult.h Kernel: Add missing AK/Format.h include in KResult.h 2021-05-28 09:37:09 +02:00
kstdio.h Kernel/Graphics + SystemServer: Support text mode properly 2021-05-16 19:58:33 +02:00
KString.cpp Kernel: Add KString::must_{..} factory methods 2021-05-31 14:50:49 +04:30
KString.h Kernel: Add KString::must_{..} factory methods 2021-05-31 14:50:49 +04:30
KSyms.cpp Kernel: Check kernel symbol's name length matches searched name 2021-04-28 22:14:32 +02:00
KSyms.h
linker.ld
Lock.cpp Kernel: Utilize AK::SourceLocation for LOCK_DEBUG instrumentation. 2021-04-25 09:38:27 +02:00
Lock.h Kernel: Add ScopedLockRelease to temporarily release a Lock 2021-05-25 10:35:41 +02:00
LockMode.h Everywhere: Use "the SerenityOS developers." in copyright headers 2021-04-29 00:59:26 +02:00
mkmap.sh
Module.h
Multiboot.h
Panic.cpp Kernel/Graphics + SystemServer: Support text mode properly 2021-05-16 19:58:33 +02:00
Panic.h Kernel/Graphics + SystemServer: Support text mode properly 2021-05-16 19:58:33 +02:00
PerformanceEventBuffer.cpp Kernel: Make PerformanceEventBuffer creation API OOM safe 2021-05-29 09:04:05 +02:00
PerformanceEventBuffer.h Kernel: Add support for profiling kmalloc()/kfree() 2021-05-19 22:51:42 +02:00
PerformanceManager.h Kernel: Don't log profile data before/after the process/thread lifetime 2021-05-30 19:03:03 +02:00
PhysicalAddress.h
Process.cpp Kernel: Convert Process::get_syscall_path_argument() to KString 2021-05-29 20:18:57 +02:00
Process.h Kernel: Convert Process::get_syscall_path_argument() to KString 2021-05-29 20:18:57 +02:00
ProcessGroup.cpp Revert "Kernel: Avoid allocating under spinlock in ProcessGroup::find_or_create" 2021-05-21 12:36:20 +02:00
ProcessGroup.h Revert "Kernel: Avoid allocating under spinlock in ProcessGroup::find_or_create" 2021-05-21 12:36:20 +02:00
Random.cpp Kernel: Remove the now defunct LOCKER(..) macro. 2021-04-25 09:38:27 +02:00
Random.h
RTC.cpp
RTC.h
Scheduler.cpp Kernel: Don't log profile data before/after the process/thread lifetime 2021-05-30 19:03:03 +02:00
Scheduler.h Kernel: Don't log profile data before/after the process/thread lifetime 2021-05-30 19:03:03 +02:00
SpinLock.h
StdLib.cpp Kernel: Add try_copy_kstring_from_user() 2021-05-28 09:37:09 +02:00
StdLib.h Kernel: Add try_copy_kstring_from_user() 2021-05-28 09:37:09 +02:00
Syscall.cpp Kernel: Make sure we free the thread stack on thread exit 2021-05-29 15:53:08 +02:00
Thread.cpp Kernel: Make sure we unmap the TLS region when a thread exits 2021-05-29 15:53:08 +02:00
Thread.h Kernel: Don't log profile data before/after the process/thread lifetime 2021-05-30 19:03:03 +02:00
ThreadBlockers.cpp Kernel: Modify TimeManagement::current_time(..) API so it can't fail. (#6869) 2021-05-05 18:51:06 +02:00
ThreadTracer.cpp
ThreadTracer.h Kernel: Make Process::start_tracing_from API OOM safe 2021-05-13 16:21:53 +02:00
TimerQueue.cpp Kernel: Remove an allocation when blocking a thread 2021-05-20 09:09:10 +02:00
TimerQueue.h Kernel: Remove an allocation when blocking a thread 2021-05-20 09:09:10 +02:00
UBSanitizer.cpp Kernel+AK: Move UBSanitizer to AK, and to AK namespace 2021-05-27 15:18:03 +02:00
UnixTypes.h Kernel: Generate page fault events from the kernel profiler 2021-05-19 22:51:42 +02:00
UnveilNode.h
UserOrKernelBuffer.cpp
UserOrKernelBuffer.h Kernel: Make UserOrKernelBuffer R/W helpers return KResultOr<size_t> 2021-05-13 23:28:40 +02:00
VirtualAddress.h
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: Use plain Function objects for the WorkQueue 2021-05-19 21:36:57 +02:00
WorkQueue.h Kernel: Use plain Function objects for the WorkQueue 2021-05-19 21:36:57 +02:00