summaryrefslogtreecommitdiff
path: root/Kernel/init.cpp
diff options
context:
space:
mode:
authorAndreas Kling <awesomekling@gmail.com>2020-01-03 12:36:30 +0100
committerAndreas Kling <awesomekling@gmail.com>2020-01-03 12:43:07 +0100
commit9026598999d996d403d0b5951006ef4bb0f1c1c0 (patch)
tree027cb67bad6291ce48d109673abb60cc909689f5 /Kernel/init.cpp
parent24cc67d199256faa88b43cf580e9b76b4b9b327f (diff)
downloadserenity-9026598999d996d403d0b5951006ef4bb0f1c1c0.zip
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.
Diffstat (limited to 'Kernel/init.cpp')
-rw-r--r--Kernel/init.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/Kernel/init.cpp b/Kernel/init.cpp
index 24f1fd0ea8..b01d496abe 100644
--- a/Kernel/init.cpp
+++ b/Kernel/init.cpp
@@ -307,6 +307,12 @@ extern "C" [[noreturn]] void init(u32 physical_address_for_kernel_page_tables)
kprintf("x86: RDTSC support restricted\n");
}
+ if (g_cpu_supports_rdrand) {
+ kprintf("x86: Using RDRAND for good randomness\n");
+ } else {
+ kprintf("x86: No RDRAND support detected. Randomness will be shitty\n");
+ }
+
RTC::initialize();
PIC::initialize();
gdt_init();