ladybird/Kernel
Andreas Kling 9026598999 Kernel: Add a more expressive API for getting random bytes
We now have these API's in <Kernel/Random.h>:

    - get_fast_random_bytes(u8* buffer, size_t buffer_size)
    - get_good_random_bytes(u8* buffer, size_t buffer_size)
    - get_fast_random<T>()
    - get_good_random<T>()

Internally they both use x86 RDRAND if available, otherwise they fall
back to the same LCG we had in RandomDevice all along.

The main purpose of this patch is to give kernel code a way to better
express its needs for random data.

Randomness is something that will require a lot more work, but this is
hopefully a step in the right direction.
2020-01-03 12:43:07 +01:00
..
ACPI Kernel: Create a basic SMBIOS Decoder 2020-01-02 00:50:09 +01:00
Arch/i386 Kernel: Add a more expressive API for getting random bytes 2020-01-03 12:43:07 +01:00
Devices Kernel: Add a more expressive API for getting random bytes 2020-01-03 12:43:07 +01:00
FileSystem Kernel: The superuser is allowed to utime() on any file 2020-01-03 04:14:41 +01:00
Heap Kernel: Demangle userspace ELF symbols in backtraces 2019-11-27 14:06:24 +01:00
Net Kernel: Add a more expressive API for getting random bytes 2020-01-03 12:43:07 +01:00
PCI Kernel: Fixing PCI MMIO access mechanism 2020-01-02 21:45:04 +01:00
TTY VirtualConsole: use memmove for an overlapping copy 2019-12-20 20:02:45 +01:00
VM Kernel: Make the loop that marks the bottom 1MB NX a little less busy 2020-01-02 22:02:29 +01:00
.bochsrc
.gitignore
Assertions.h
build-gpt-image-grub.sh
build-image-grub.sh Build: Bump the default disk image size from 500MB to 600MB 2019-11-26 12:54:33 +01:00
build-image-qemu.sh Build: add support for building on OpenBSD 2020-01-02 21:03:53 +01:00
build-root-filesystem.sh Build: add support for building on OpenBSD 2020-01-02 21:03:53 +01:00
CMOS.cpp
CMOS.h
Console.cpp
Console.h
DoubleBuffer.cpp
DoubleBuffer.h
FB.h
grub.cfg Kernel: Embrace the SerenityOS name 2019-12-29 19:08:02 +01:00
grub_gpt.cfg Kernel: Embrace the SerenityOS name 2019-12-29 19:08:02 +01:00
init.cpp Kernel: Add a more expressive API for getting random bytes 2020-01-03 12:43:07 +01:00
IO.h
IRQHandler.cpp
IRQHandler.h
KBuffer.h Kernel: Make kernel memory regions be non-executable by default 2019-12-25 22:41:34 +01:00
KBufferBuilder.cpp Kernel: Make kernel memory regions be non-executable by default 2019-12-25 22:41:34 +01:00
KBufferBuilder.h
KernelInfoPage.h Kernel+LibC: Publish a "kernel info page" and use it for gettimeofday() 2019-12-15 21:29:26 +01:00
KeyCode.h Kernel: Implement AltGr key support 2019-12-31 19:31:42 +01:00
KParams.cpp
KParams.h
kprintf.cpp Kernel: Demangle userspace ELF symbols in backtraces 2019-11-27 14:06:24 +01:00
KResult.h Kernel: Add move assign operator to KResultOr 2019-12-29 23:01:27 +01:00
kstdio.h Build: Get rid of the USERLAND define 2019-12-20 22:59:11 +01:00
KSyms.cpp Kernel: Move kernel symbols to /res/kernel.map and make it root-only 2020-01-02 20:51:31 +01:00
KSyms.h Kernel: Allow modules to link against anything in kernel.map :^) 2019-11-28 21:30:20 +01:00
linker.ld Revert "Kernel: Move Kernel mapping to 0xc0000000" 2019-11-23 17:27:09 +01:00
Lock.cpp Kernel: Use a dedicated thread state for wait-queued threads 2019-12-01 16:02:58 +01:00
Lock.h Kernel: Add Lock::is_locked() 2019-12-26 11:43:23 +01:00
makeall.sh Build: add support for building on OpenBSD 2020-01-02 21:03:53 +01:00
Makefile Kernel: Add a more expressive API for getting random bytes 2020-01-03 12:43:07 +01:00
mkmap.sh Kernel: Allow modules to link against anything in kernel.map :^) 2019-11-28 21:30:20 +01:00
Module.h Kernel: Implement basic module unloading :^) 2019-11-28 21:07:22 +01:00
MousePacket.h
Multiboot.h
PCI.cpp
PCI.h
Process.cpp Kernel: Add a more expressive API for getting random bytes 2020-01-03 12:43:07 +01:00
Process.h Kernel: Remove read_tsc() syscall 2020-01-03 09:27:09 +01:00
ProcessTracer.cpp
ProcessTracer.h
Profiling.cpp Kernel: Separate out the symbol offsets in profile output 2019-12-12 21:59:47 +01:00
Profiling.h Kernel: Separate out the symbol offsets in profile output 2019-12-12 21:59:47 +01:00
Random.cpp Kernel: Add a more expressive API for getting random bytes 2020-01-03 12:43:07 +01:00
Random.h Kernel: Add a more expressive API for getting random bytes 2020-01-03 12:43:07 +01:00
RTC.cpp
RTC.h
run Kernel: Fixing PCI MMIO access mechanism 2020-01-02 21:45:04 +01:00
Scheduler.cpp Kernel: Prevent executing I/O instructions in userspace 2020-01-01 17:31:41 +01:00
Scheduler.h Kernel: Switch to eagerly restoring x86 FPU state on context switch 2020-01-01 16:54:21 +01:00
SharedBuffer.cpp Kernel: Rename vmo => vmobject everywhere 2019-12-19 19:15:27 +01:00
SharedBuffer.h Kernel+LibC: Make all SharedBuffers purgeable (default: non-volatile) 2019-12-09 20:06:47 +01:00
StdLib.cpp Kernel+LibC: Build with basic -fstack-protector support 2019-12-20 21:03:32 +01:00
StdLib.h Kernel: Introduce the ACPI subsystem 2020-01-02 00:50:09 +01:00
sync.sh Build: Make sure PATH is passed properly (#765) 2019-11-12 10:26:50 +01:00
Syscall.cpp Kernel: Add a random offset to kernel stacks upon syscall entry 2020-01-01 23:21:24 +01:00
Syscall.h Kernel: Remove read_tsc() syscall 2020-01-03 09:27:09 +01:00
TestModule.cpp Kernel: Have modules export their name in a "module_name" string 2019-11-29 21:31:17 +01:00
Thread.cpp Kernel: Mask kernel addresses in backtraces and profiles 2020-01-02 20:51:31 +01:00
Thread.h Kernel: Switch to eagerly restoring x86 FPU state on context switch 2020-01-01 16:54:21 +01:00
TimerQueue.cpp Kernel: Add kernel-level timer queue (heavily based on @juliusf's work) 2019-12-27 02:15:45 +01:00
TimerQueue.h Kernel: Add kernel-level timer queue (heavily based on @juliusf's work) 2019-12-27 02:15:45 +01:00
UnixTypes.h Kernel: Add a mode flag to sys$purge and allow purging clean inodes 2019-12-29 13:16:53 +01:00
WaitQueue.cpp Kernel: Use IntrusiveList to make WaitQueue allocation-free :^) 2019-12-22 12:38:01 +01:00
WaitQueue.h Kernel: Use IntrusiveList to make WaitQueue allocation-free :^) 2019-12-22 12:38:01 +01:00