ladybird/Kernel
Andreas Kling 2a5cff232b Kernel: Use slab allocation automagically for small kmalloc() requests
This patch adds generic slab allocators to kmalloc. In this initial
version, the slab sizes are 16, 32, 64, 128, 256 and 512 bytes.

Slabheaps are backed by 64 KiB block-aligned blocks with freelists,
similar to what we do in LibC malloc and LibJS Heap.
2021-12-26 21:22:59 +01:00
..
API Kernel+UE+LibC: Store address as void* in SC_m{re,}map_params 2021-12-23 23:08:10 +01:00
Arch AK+Everywhere: Replace __builtin bit functions 2021-12-21 22:13:51 +01:00
Bus Kernel/SysFS: Prevent allocation for component name during construction 2021-12-14 09:01:33 +01:00
Devices Kernel: Make major and minor numbers to be DistinctNumerics 2021-12-23 23:02:39 +01:00
FileSystem Kernel: Fix deadlock caused by page faults while holding disk cache lock 2021-12-26 00:42:51 +01:00
Firmware Kernel: Move Multi Processor Parser code to a separate directory 2021-12-23 23:18:58 -08:00
Graphics Kernel: Use copy_typed_from_user() in more places :^) 2021-12-18 11:30:10 +01:00
Heap Kernel: Use slab allocation automagically for small kmalloc() requests 2021-12-26 21:22:59 +01:00
Interrupts Kernel: Encapsulate APIC initialization inside InterruptManagement 2021-12-26 16:22:09 +02:00
Library Kernel: Mark kernel smart-pointer classes as [[nodiscard]] 2021-12-05 15:31:03 +01:00
Locking Kernel: Remove no-longer-used Lockable template 2021-12-26 21:22:59 +01:00
Memory Kernel: Make kmalloc heap expansion kmalloc-free 2021-12-25 22:07:59 +01:00
Net Kernel: Remove unnecessary SocketHandle<T> class 2021-12-25 11:23:57 +01:00
Prekernel Kernel: Do not do integer to pointer conversion in constexpr functions 2021-12-04 11:59:59 -08:00
Storage Kernel: Make major and minor numbers to be DistinctNumerics 2021-12-23 23:02:39 +01:00
Syscalls Kernel: Make msync return EINVAL when regions are too large 2021-12-23 17:43:12 -08:00
Tasks Kernel: Mark kernel smart-pointer classes as [[nodiscard]] 2021-12-05 15:31:03 +01:00
Time Kernel: Encapsulate APIC initialization inside InterruptManagement 2021-12-26 16:22:09 +02:00
TTY Kernel: Mark PTYMultiplexer init & parse_hex_digit as UNMAP_AFTER_INIT 2021-12-24 14:28:59 -08: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: Remove ASM_Wrapper include from platform independent processor.h 2021-12-01 11:22:04 -08:00
AtomicEdgeAction.h Kernel: Add per platform Processor.h headers 2021-10-14 01:23:08 +01:00
BootInfo.h Kernel: Add an x86 include check+error in x86/PageDirectory.h 2021-12-01 11:22:04 -08:00
CMakeLists.txt Kernel: Move Multi Processor Parser code to a separate directory 2021-12-23 23:18:58 -08:00
CMOS.cpp Kernel: Move x86 IO instructions code into the x86 specific folder 2021-10-01 12:27:20 +02:00
CMOS.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
CommandLine.cpp Kernel: Ensure SMP mode is not enabled if IOAPIC mode is disabled 2021-12-20 11:00:31 -08:00
CommandLine.h Kernel: Ensure SMP mode is not enabled if IOAPIC mode is disabled 2021-12-20 11:00:31 -08:00
Coredump.cpp Kernel: Exclude PROT_NONE regions from coredumps 2021-12-22 00:02:36 -08:00
Coredump.h Kernel: Replace KResult and KResultOr<T> with Error and ErrorOr<T> 2021-11-08 01:10:53 +01:00
Debug.h.in Kernel: Add AC97_DEBUG macro 2021-11-28 19:26:22 +02:00
DoubleBuffer.cpp Kernel: Share code between DoubleBuffer's read() and peek() 2021-11-21 20:22:48 +01:00
DoubleBuffer.h Kernel: Share code between DoubleBuffer's read() and peek() 2021-11-21 20:22:48 +01:00
embedmap.sh Kernel: Make new kernel build process work on macOS 2021-07-15 11:04:30 +02:00
Forward.h Kernel: Replace KResult and KResultOr<T> with Error and ErrorOr<T> 2021-11-08 01:10:53 +01:00
FutexQueue.cpp Kernel: Don't register thread as custom data for FutexBlocker 2021-08-24 01:57:11 +02:00
FutexQueue.h Kernel: Don't register thread as custom data for FutexBlocker 2021-08-24 01:57:11 +02:00
GlobalProcessExposed.cpp Kernel: Make major and minor numbers to be DistinctNumerics 2021-12-23 23:02:39 +01:00
init.cpp Kernel: Encapsulate APIC initialization inside InterruptManagement 2021-12-26 16:22:09 +02:00
KBuffer.h Kernel: Replace KResult and KResultOr<T> with Error and ErrorOr<T> 2021-11-08 01:10:53 +01:00
KBufferBuilder.cpp Everywhere: Pass AK::StringView by value 2021-11-11 01:27:46 +01:00
KBufferBuilder.h AK: Convert AK::Format formatting helpers to returning ErrorOr<void> 2021-11-17 00:21:13 +01:00
KLexicalPath.cpp Everywhere: Pass AK::StringView by value 2021-11-11 01:27:46 +01:00
KLexicalPath.h Everywhere: Pass AK::StringView by value 2021-11-11 01:27:46 +01:00
kprintf.cpp Kernel+UE+LibC: Remove unused dbgputch syscall 2021-11-24 22:56:39 +01:00
kstdio.h Kernel+UE+LibC: Remove unused dbgputch syscall 2021-11-24 22:56:39 +01:00
KString.cpp Kernel: Add an error propagating KString::format(..) API :^) 2021-11-30 11:16:35 +01:00
KString.h Kernel: Add an error propagating KString::format(..) API :^) 2021-11-30 11:16:35 +01:00
KSyms.cpp Kernel: Mark PTYMultiplexer init & parse_hex_digit as UNMAP_AFTER_INIT 2021-12-24 14:28:59 -08:00
KSyms.h Everywhere: Pass AK::StringView by value 2021-11-11 01:27:46 +01:00
linker.ld Kernel: Support split data sections 2021-10-17 17:09:58 +01:00
MiniStdLib.cpp Kernel: Build MiniStdLib.cpp in aarch64 builds 2021-09-07 20:15:15 +01:00
mkmap.sh Kernel: Use our toolchain's c++filt tool for the kernel map 2021-07-29 10:38:31 +02:00
Multiboot.h Prekernel: Export some multiboot parameters in our own BootInfo struct 2021-07-27 13:15:16 +02:00
Panic.cpp Kernel: Separate panic behavior from bootmode 2021-10-25 23:38:28 +02:00
Panic.h Kernel/Graphics + SystemServer: Support text mode properly 2021-05-16 19:58:33 +02:00
PerformanceEventBuffer.cpp Kernel: Mask kernel addresses in perf event streams for non-superuser 2021-12-19 18:18:38 +01:00
PerformanceEventBuffer.h Everywhere: Pass AK::StringView by value 2021-11-11 01:27:46 +01:00
PerformanceManager.h Kernel: Resolve clang-tidy readability-qualified-auto warning 2021-11-14 22:52:35 +01:00
PhysicalAddress.h AK: Convert AK::Format formatting helpers to returning ErrorOr<void> 2021-11-17 00:21:13 +01:00
Process.cpp Kernel: Make perfcore files owned by UID=0, GID=0 2021-12-19 18:18:38 +01:00
Process.h Kernel: Make sys${ftruncate,pread} take off_t as const pointer 2021-12-18 11:30:10 +01:00
ProcessExposed.cpp Kernel: Use DistinctNumeric for filesystem ID's 2021-11-18 21:11:30 +01:00
ProcessExposed.h Kernel+SystemServer: Add /dev/tty 2021-12-12 22:32:35 +01:00
ProcessGroup.cpp Kernel: Replace KResult and KResultOr<T> with Error and ErrorOr<T> 2021-11-08 01:10:53 +01:00
ProcessGroup.h Kernel: Replace KResult and KResultOr<T> with Error and ErrorOr<T> 2021-11-08 01:10:53 +01:00
ProcessProcFSTraits.cpp Kernel+SystemServer: Add /dev/tty 2021-12-12 22:32:35 +01:00
ProcessSpecificExposed.cpp Kernel+SystemServer: Add /dev/tty 2021-12-12 22:32:35 +01:00
Random.cpp Kernel: Make KernelRng not inherit from Lockable 2021-12-26 21:22:59 +01:00
Random.h Kernel: Make KernelRng not inherit from Lockable 2021-12-26 21:22:59 +01:00
RTC.cpp Kernel: Move x86 IO instructions code into the x86 specific folder 2021-10-01 12:27:20 +02:00
RTC.h Kernel: Ensure we read valid values from the RTC CMOS registers 2021-08-04 19:53:04 +02:00
SanCov.cpp Kernel/KCOV: Bring closer to typical SerenityOS coding style 2021-09-06 01:55:27 +02:00
Scheduler.cpp AK+Everywhere: Replace __builtin bit functions 2021-12-21 22:13:51 +01:00
Scheduler.h Kernel: Rename SpinLock => Spinlock 2021-08-22 03:34:10 +02:00
Sections.h Kernel: Move userspace virtual address range base to 0x10000 2021-12-22 00:02:36 -08:00
StdLib.cpp Kernel: Remove unused String.h includes 2021-12-11 13:15:26 -08:00
StdLib.h Kernel: Remove unused forward declaration of Syscall::StringArgument 2021-11-14 22:52:35 +01:00
Syscall.cpp Kernel: Enable SMAP protection earlier during syscall entry 2021-12-18 11:30:10 +01:00
Thread.cpp Kernel: Don't honor userspace SIGSTOP requests in Thread::block() 2021-12-23 00:57:36 +01:00
Thread.h Kernel: Don't honor userspace SIGSTOP requests in Thread::block() 2021-12-23 00:57:36 +01:00
ThreadBlockers.cpp AK+Everywhere: Replace __builtin bit functions 2021-12-21 22:13:51 +01:00
ThreadTracer.cpp Kernel: Add cross platform RegisterState header and Aarch64 version 2021-10-15 21:48:45 +01:00
ThreadTracer.h Kernel: Resolve clang-tidy readability-implicit-bool-conversion warnings 2021-11-14 22:52:35 +01:00
TimerQueue.cpp Kernel: Remove a bunch of unused TimerQueue functions 2021-09-07 22:16:25 +02:00
TimerQueue.h AK+Everywhere: Reduce the number of template parameters of IntrusiveList 2021-09-10 18:05:46 +03:00
UBSanitizer.cpp Kernel: Switch KUBSAN prints to use critical_dmesgln instead of dbgln 2021-12-22 00:02:36 -08:00
UnixTypes.h Kernel: Move {Process,Thread,Session,ProcessGroup}ID to Kernel/Forward.h 2021-08-14 19:58:11 +02:00
UserOrKernelBuffer.cpp Kernel: Replace KResult and KResultOr<T> with Error and ErrorOr<T> 2021-11-08 01:10:53 +01:00
UserOrKernelBuffer.h Kernel+LibC: Move errno definitions to Kernel/API/POSIX 2021-12-16 22:21:35 +03:30
VirtualAddress.h AK: Convert AK::Format formatting helpers to returning ErrorOr<void> 2021-11-17 00:21:13 +01:00
WaitQueue.cpp Kernel: Don't register thread as custom data for WaitQueueBlocker 2021-08-24 01:57:11 +02:00
WaitQueue.h Kernel: Don't register thread as custom data for WaitQueueBlocker 2021-08-24 01:57:11 +02:00
WorkQueue.cpp Kernel: Mark kernel smart-pointer classes as [[nodiscard]] 2021-12-05 15:31:03 +01:00
WorkQueue.h Kernel: Make WorkQueue::WorkItem slab allocated 2021-10-26 10:50:44 +02:00