summaryrefslogtreecommitdiff
path: root/kernel/drivers
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/drivers
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/drivers')
-rw-r--r--kernel/drivers/pit.c14
-rw-r--r--kernel/drivers/pit.h1
2 files changed, 0 insertions, 15 deletions
diff --git a/kernel/drivers/pit.c b/kernel/drivers/pit.c
index ac4e555..70dc0f9 100644
--- a/kernel/drivers/pit.c
+++ b/kernel/drivers/pit.c
@@ -9,11 +9,6 @@ u32 pit_counter = 0;
u32 switch_counter = 0;
u16 hertz;
-u64 cpu_mhz = 0;
-u64 pit_num_ms(void) {
- return (get_tsc()) / (cpu_mhz * 1000);
-}
-
u16 read_pit_count(void) {
u16 count = 0;
@@ -26,8 +21,6 @@ u16 read_pit_count(void) {
}
void set_pit_count(u16 _hertz) {
- cpu_mhz = get_hz() / 10000;
-
hertz = _hertz;
u16 divisor = 1193180 / hertz;
@@ -53,13 +46,6 @@ u64 last_tsc = 0;
extern int is_switching_tasks;
void int_clock(reg_t *regs) {
- u64 current_tsc = get_tsc();
-
- u64 delta = (current_tsc - last_tsc) / (cpu_mhz * 1000);
-
- clock_num_ms_ticks += delta;
-
- last_tsc = current_tsc;
switch_counter++;
if (clock_num_ms_ticks - last_flush > 50) {
diff --git a/kernel/drivers/pit.h b/kernel/drivers/pit.h
index ec48cc3..90fddf4 100644
--- a/kernel/drivers/pit.h
+++ b/kernel/drivers/pit.h
@@ -8,5 +8,4 @@
void pit_install(void);
void set_pit_count(u16 hertz);
-u64 pit_num_ms(void);
#endif