serenity/Kernel
Gunnar Beutner f89e8fb71a AK+LibC: Implement malloc_good_size() and use it for Vector/HashTable
This implements the macOS API malloc_good_size() which returns the
true allocation size for a given requested allocation size. This
allows us to make use of all the available memory in a malloc chunk.

For example, for a malloc request of 35 bytes our malloc would
internally use a chunk of size 64, however the remaining 29 bytes
would be unused.

Knowing the true allocation size allows us to request more usable
memory that would otherwise be wasted and make that available for
Vector, HashTable and potentially other callers in the future.
2021-05-15 16:30:14 +02:00
..
ACPI Kernel/ACPI: Map two pages when reading the FADT 2021-05-08 19:15:54 +02:00
API Kernel+LibC: Add fstatat 2021-05-14 23:32:10 +02:00
Arch Kernel: Don't crash in page_fault_handler if current_thread is null 2021-05-15 09:00:29 +02:00
Devices Kernel: Fix UHCIController singleton startup null-deref race condition. 2021-05-15 09:46:41 +02:00
FileSystem Kernel: Make UserOrKernelBuffer R/W helpers return KResultOr<size_t> 2021-05-13 23:28:40 +02:00
Heap AK+LibC: Implement malloc_good_size() and use it for Vector/HashTable 2021-05-15 16:30:14 +02:00
Interrupts Kernel: Add Processor::is_bootstrap_processor() function, and use it. (#6871) 2021-05-05 18:48:26 +02:00
Modules
Net Kernel: Log unexpected TCP packet flags in NetworkTask handle_tcp() 2021-05-15 09:46:50 +02:00
PCI Everywhere: Turn #if *_DEBUG into dbgln_if/if constexpr 2021-05-01 21:25:06 +02:00
Storage Kernel/AHCI: Don't check for PCC during initialization 2021-05-15 10:14:16 +02:00
Syscalls Kernel: Make perf_event() work for global profiles 2021-05-15 16:28:18 +02:00
Tasks
Time Kernel: Use a separate timer for profiling the system 2021-05-14 00:35:57 +02:00
TTY Kernel: Make PTYMultiplexer::open API OOM safe 2021-05-15 09:01:32 +02:00
VirtIO Kernel: Move VirtIO code away from using a scatter gather list 2021-05-13 10:00:42 +02:00
VM Kernel: Make AnonymousVMObject physical page APIs OOM safe 2021-05-15 09:01:32 +02:00
AddressSanitizer.cpp
AddressSanitizer.h
Assertions.h
CMakeLists.txt CMake: Fix message levels for error conditions during configuration 2021-05-13 18:52:48 +02:00
CMOS.cpp
CMOS.h
CommandLine.cpp
CommandLine.h
Console.cpp Kernel: Make UserOrKernelBuffer R/W helpers return KResultOr<size_t> 2021-05-13 23:28:40 +02:00
Console.h
CoreDump.cpp Everywhere: Use linusg@serenityos.org for my copyright headers 2021-04-22 22:51:19 +02:00
CoreDump.h
Debug.h.in Kernel: Add the ability to verify we don't kmalloc under spinlock. 2021-05-14 13:28:21 +02:00
DMI.cpp
DMI.h
DoubleBuffer.cpp Kernel: Implement peek() function for DoubleBuffer 2021-04-29 08:09:53 +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: Enable building the kernel with -flto 2021-04-29 20:26:36 +02:00
IO.h
KBuffer.h Kernel: Make KBuffer::try_create_with* APIs OOM safe 2021-05-13 16:21:53 +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
KResult.h
kstdio.h
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: Remove the now defunct LOCKER(..) macro. 2021-04-25 09:38:27 +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
Panic.h
PerformanceEventBuffer.cpp Kernel: Correctly set the lost_samples field for the first sample 2021-05-14 00:46:10 +02:00
PerformanceEventBuffer.h Kernel+Profiler: Track lost time between profiler timer ticks 2021-05-14 00:35:57 +02:00
PerformanceManager.h Kernel+Profiler: Track lost time between profiler timer ticks 2021-05-14 00:35:57 +02:00
PhysicalAddress.h
Process.cpp Kernel: Make Process creation APIs OOM safe 2021-05-15 09:01:32 +02:00
Process.h Kernel: Make Process creation APIs OOM safe 2021-05-15 09:01:32 +02:00
ProcessGroup.cpp AK: Rename adopt() to adopt_ref() 2021-04-23 16:46:57 +02:00
ProcessGroup.h
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: Use a separate timer for profiling the system 2021-05-14 00:35:57 +02:00
Scheduler.h
SpinLock.h
StdLib.cpp Kernel: Enable building the kernel with -flto 2021-04-29 20:26:36 +02:00
StdLib.h
Syscall.cpp Kernel: Enable building the kernel with -flto 2021-04-29 20:26:36 +02:00
Thread.cpp Kernel: Make Thread::try_create API OOM safe 2021-05-13 08:29:01 +02:00
Thread.h Kernel: Remove shadowing member variable from FileDescriptionBlocker 2021-05-05 18:44:40 +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: Modify TimeManagement::current_time(..) API so it can't fail. (#6869) 2021-05-05 18:51:06 +02:00
TimerQueue.h
UBSanitizer.cpp Kernel: Halt CPU on deadly UBSAN instead of calling PANIC 2021-05-15 09:00:29 +02:00
UBSanitizer.h
UnixTypes.h Kernel+LibC: Add fstatat 2021-05-14 23:32:10 +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 Everywhere: Use "the SerenityOS developers." in copyright headers 2021-04-29 00:59:26 +02:00
WorkQueue.h Everywhere: Use "the SerenityOS developers." in copyright headers 2021-04-29 00:59:26 +02:00