diff options
author | Anton Kling <anton@kling.gg> | 2024-07-04 18:29:17 +0200 |
---|---|---|
committer | Anton Kling <anton@kling.gg> | 2024-07-04 18:42:47 +0200 |
commit | 7d7f0aa9595bedf50083fb89dae049c1f064ca98 (patch) | |
tree | 9f821cb85e6deaf54b8c5b481325c7d9b231d907 /kernel/drivers/pit.c | |
parent | f7752e37ce29b903e15d2579d25d4ebbaad023e6 (diff) |
Random: Improve random seeding.
Now it appears to be sufficiently good at producing a distinct seed at
each boot without using a /etc/seed file. Previously it did not do this.
Of course this is nowhere near cryptographically secure but randomness
does assist with things such as kmalloc.
Diffstat (limited to 'kernel/drivers/pit.c')
-rw-r--r-- | kernel/drivers/pit.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/kernel/drivers/pit.c b/kernel/drivers/pit.c index 70dc0f9..b8a8aac 100644 --- a/kernel/drivers/pit.c +++ b/kernel/drivers/pit.c @@ -1,5 +1,6 @@ #include "pit.h" #include <arch/i386/tsc.h> +#include <random.h> #define PIT_IO_CHANNEL_0 0x40 #define PIT_IO_MODE_COMMAND 0x43 @@ -46,7 +47,8 @@ u64 last_tsc = 0; extern int is_switching_tasks; void int_clock(reg_t *regs) { - + u64 current_tsc = tsc_get(); + random_add_entropy_fast((u8 *)¤t_tsc, sizeof(current_tsc)); switch_counter++; if (clock_num_ms_ticks - last_flush > 50) { tcp_flush_acks(); |