summaryrefslogtreecommitdiff
path: root/kernel/init/kernel.c
diff options
context:
space:
mode:
authorAnton Kling <anton@kling.gg>2024-07-03 18:30:51 +0200
committerAnton Kling <anton@kling.gg>2024-07-03 18:30:51 +0200
commit4e7918753175dbd8fc38bc7c5b176517e1dbef2f (patch)
tree723b3b3503d7502f3ce5338aeb6964cb5fa4c246 /kernel/init/kernel.c
parent658c4e9645bf46268ed13bf5ef76d0ba60a347b9 (diff)
Kernel/Time: Improve time keeping
This makes use of TSC and now provides a file system interface for userland programs to change the system time.
Diffstat (limited to 'kernel/init/kernel.c')
-rw-r--r--kernel/init/kernel.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/kernel/init/kernel.c b/kernel/init/kernel.c
index 83f4af8..90be3ab 100644
--- a/kernel/init/kernel.c
+++ b/kernel/init/kernel.c
@@ -28,6 +28,7 @@
#include <stddef.h>
#include <stdio.h>
#include <string.h>
+#include <timer.h>
#include <typedefs.h>
#if defined(__linux__)
@@ -76,6 +77,8 @@ void kernel_main(u32 kernel_end, unsigned long magic, unsigned long addr,
ata_init();
klog(LOG_SUCCESS, "ATA Initalized");
+ timer_init();
+
tasking_init();
klog(LOG_SUCCESS, "Tasking Initalized");
@@ -96,6 +99,9 @@ void kernel_main(u32 kernel_end, unsigned long magic, unsigned long addr,
add_stdout();
add_serial();
add_random_devices();
+
+ timer_add_clock();
+
shm_init();
setup_random();
@@ -123,7 +129,7 @@ void kernel_main(u32 kernel_end, unsigned long magic, unsigned long addr,
}
}
for (;;) {
- current_task->sleep_until = pit_num_ms() + 100000000;
+ current_task->sleep_until = timer_get_ms() + 100000000;
wait_for_interrupt();
}
}