ladybird/Kernel
Tom e2d7945e0c Kernel: Make KernelRng thread-safe
This adds an optional argument to get_good_random_bytes that can be
used to only return randomness if it doesn't have to block.
Also add a SpinLock around using FortunaPRNG.

Fixes #5132
2021-01-28 08:15:26 +01:00
..
ACPI Meta: Split debug defines into multiple headers. 2021-01-26 21:20:00 +01:00
API Kernel: Some futex improvements 2021-01-17 20:30:31 +01:00
Arch Kernel: Track processor idle state and wake processors when waking threads 2021-01-27 22:48:41 +01:00
Devices BXVGADevice+MBVGADevice: Correctly check page-aligned mmaps 2021-01-28 08:14:04 +01:00
FileSystem Kernel: Make Processor::id a static function 2021-01-27 21:12:24 +01:00
Heap Meta: Split debug defines into multiple headers. 2021-01-26 21:20:00 +01:00
Interrupts Kernel: Use the CPU# as logical apic id 2021-01-27 22:48:41 +01:00
Modules Kernel: Module symbol declarations for type-checking 2020-08-12 20:40:59 +02:00
Net Meta: Split debug defines into multiple headers. 2021-01-26 21:20:00 +01:00
PCI Meta: Split debug defines into multiple headers. 2021-01-26 21:20:00 +01:00
Storage Meta: Split debug defines into multiple headers. 2021-01-26 21:20:00 +01:00
Syscalls Kernel: Remove Range "valid" state and use Optional<Range> instead 2021-01-27 21:14:42 +01:00
Tasks AK: Simplify constructors and conversions from nullptr_t 2021-01-12 09:11:45 +01:00
Time Kernel: Make Processor::id a static function 2021-01-27 21:12:24 +01:00
TTY Meta: Split debug defines into multiple headers. 2021-01-26 21:20:00 +01:00
VM Kernel: Release MM lock while yielding from inode page fault handler 2021-01-27 22:48:41 +01:00
.gitignore Meta: Removed all gitignore in the source tree only keeping the root one 2019-06-30 10:41:26 +02:00
Assertions.h Everywhere: Switch from (void) to [[maybe_unused]] (#4473) 2020-12-21 00:09:48 +01:00
CMakeLists.txt Kernel: Implement RamdiskDevice 2021-01-22 22:17:39 +01:00
CMOS.cpp Kernel: Absorb LibBareMetal back into the kernel 2020-05-16 12:00:04 +02:00
CMOS.h Meta: Add license header to source files 2020-01-18 09:45:54 +01:00
CommandLine.cpp Meta+Kernel: Make clang-format-10 clean 2020-09-25 21:18:17 +02:00
CommandLine.h Kernel: Copy command line to a safe place 2020-08-25 09:48:48 +02:00
Console.cpp Kernel+LibC: Turn errno codes into a strongly typed enum 2021-01-20 23:20:02 +01:00
Console.h Kernel: Make device generate their own names 2021-01-22 22:17:39 +01:00
CoreDump.cpp Kernel: Create core dumps with S_IFREG set (regular file) 2021-01-23 17:59:42 +01:00
CoreDump.h Kernel: Embed a Metadata notes entry in coredumps 2020-12-30 16:28:27 +01:00
Debug.h.in Meta: Split debug defines into multiple headers. 2021-01-26 21:20:00 +01:00
DoubleBuffer.cpp Kernel: Merge PurgeableVMObject into AnonymousVMObject 2021-01-01 23:43:44 +01:00
DoubleBuffer.h Kernel: Move block condition evaluation out of the Scheduler 2020-11-30 13:17:02 +01:00
Forward.h Kernel: Some futex improvements 2021-01-17 20:30:31 +01:00
FutexQueue.cpp Meta: Split debug defines into multiple headers. 2021-01-26 21:20:00 +01:00
FutexQueue.h Kernel: Some futex improvements 2021-01-17 20:30:31 +01:00
init.cpp Kernel: Ensure that HPET is initialized before using random the first time 2021-01-26 21:14:44 +01:00
IO.h Kernel: Convert a bunch of String::format() => String::formatted() 2021-01-11 22:07:01 +01:00
KBuffer.h AK: Simplify constructors and conversions from nullptr_t 2021-01-12 09:11:45 +01:00
KBufferBuilder.cpp Kernel: Improve ProcFS behavior in low memory conditions 2021-01-03 22:12:19 +01:00
KBufferBuilder.h Kernel: Improve ProcFS behavior in low memory conditions 2021-01-03 22:12:19 +01:00
kprintf.cpp Everywhere: Replace a bundle of dbg with dbgln. 2021-01-09 21:11:09 +01:00
KResult.h Everywhere: Replace a bundle of dbg with dbgln. 2021-01-22 22:14:30 +01:00
kstdio.h LibC: Enable compiler warnings for printf format strings 2020-12-26 10:05:50 +01:00
KSyms.cpp Kernel: Do not assert if unable to load kernel symbols 2021-01-22 22:17:39 +01:00
KSyms.h Kernel: Update cryptically-named functions related to symbolication 2020-04-08 17:19:46 +02:00
linker.ld Kernel: Move kmalloc heaps and super pages inside .bss segment 2021-01-22 22:17:39 +01:00
Lock.cpp Meta: Split debug defines into multiple headers. 2021-01-26 21:20:00 +01:00
Lock.h Everywhere: Use CMake to generate AK/Debug.h. 2021-01-25 09:47:36 +01:00
LockMode.h Kernel: Fix Lock race causing infinite spinning between two threads 2020-12-16 23:38:17 +01:00
mkmap.sh Build: Switch to CMake :^) 2020-05-14 20:15:18 +02:00
Module.h Kernel: Move all code into the Kernel namespace 2020-02-16 01:27:42 +01:00
Multiboot.h Kernel: Parse boot modules from Multiboot specification 2021-01-22 22:17:39 +01:00
PerformanceEventBuffer.cpp Kernel+LibC: Turn errno codes into a strongly typed enum 2021-01-20 23:20:02 +01:00
PerformanceEventBuffer.h Kernel: Prune uninteresting kernel frames from profiling samples 2021-01-17 14:36:53 +01:00
PhysicalAddress.h Everywhere: Replace a bundle of dbg with dbgln. 2021-01-09 21:11:09 +01:00
Process.cpp Kernel: Keep a list of threads per Process 2021-01-27 22:48:41 +01:00
Process.h Kernel: Remove colonel special-case from Process::for_each_thread 2021-01-28 08:14:12 +01:00
ProcessGroup.cpp Kernel: Move block condition evaluation out of the Scheduler 2020-11-30 13:17:02 +01:00
ProcessGroup.h Kernel: Move block condition evaluation out of the Scheduler 2020-11-30 13:17:02 +01:00
Ptrace.cpp Kernel+LibC: Turn errno codes into a strongly typed enum 2021-01-20 23:20:02 +01:00
Ptrace.h Meta+Kernel: Make clang-format-10 clean 2020-09-25 21:18:17 +02:00
Random.cpp Kernel: Make KernelRng thread-safe 2021-01-28 08:15:26 +01:00
Random.h Kernel: Make KernelRng thread-safe 2021-01-28 08:15:26 +01:00
RTC.cpp Kernel: Minor tweak to now() computation 2020-08-26 08:52:07 +02:00
RTC.h Meta: Add license header to source files 2020-01-18 09:45:54 +01:00
Scheduler.cpp Revert "Kernel: Fix Thread::relock_process leaving critical section" 2021-01-27 23:23:21 +01:00
Scheduler.h Kernel: Implement thread priority queues 2021-01-27 22:48:41 +01:00
SpinLock.h Kernel: Tag more methods and types as [[nodiscard]] 2020-12-27 11:09:30 +01:00
StdLib.cpp Kernel: Add safe atomic functions 2021-01-17 20:30:31 +01:00
StdLib.h Kernel: Add safe atomic functions 2021-01-17 20:30:31 +01:00
Syscall.cpp Kernel: Track previous mode when entering/exiting traps 2021-01-27 21:12:24 +01:00
Thread.cpp Revert "Kernel: Fix Thread::relock_process leaving critical section" 2021-01-27 23:23:21 +01:00
Thread.h Kernel: Don't hold scheduler lock while setting up blocker in Thread::block 2021-01-27 22:48:41 +01:00
ThreadBlockers.cpp Meta: Split debug defines into multiple headers. 2021-01-26 21:20:00 +01:00
ThreadTracer.cpp Kernel: PID/TID typing 2020-08-10 11:51:45 +02:00
ThreadTracer.h Kernel: PID/TID typing 2020-08-10 11:51:45 +02:00
TimerQueue.cpp Kernel: Improve time keeping and dramatically reduce interrupt load 2020-12-21 18:26:12 +01:00
TimerQueue.h Kernel: Specify default memory order for some non-synchronizing Atomics 2021-01-04 19:13:52 +01:00
UnixTypes.h Kernel+LibC: Add _SC_TTY_NAME_MAX 2021-01-18 22:28:56 +01:00
UnveilNode.h Kernel: Allow 'elevating' unveil permissions if implicitly inherited from '/' 2020-12-26 16:10:04 +01:00
UserOrKernelBuffer.cpp AK: Add StringBuilder::appendff using the new format. 2020-09-22 15:06:40 +02:00
UserOrKernelBuffer.h FileSystem: Use OutputMemoryStream instead of BufferStream. 2020-09-15 20:36:45 +02:00
VirtualAddress.h AK: Add Formatter<FormatString> as helper class. 2021-01-09 21:11:09 +01:00
WaitQueue.cpp Meta: Split debug defines into multiple headers. 2021-01-26 21:20:00 +01:00
WaitQueue.h Kernel: Fix some race conditions with Lock and waiting/waking threads 2021-01-25 22:54:55 +01:00