summaryrefslogtreecommitdiff
path: root/src/kernel/timer.cc
diff options
context:
space:
mode:
authorRichard Qin <richard.qin.x@gmail.com>2026-07-10 11:31:46 +0800
committerRichard Qin <richard.qin.x@gmail.com>2026-07-10 11:31:46 +0800
commite90b72ec3082588b296956730bd2930cf8d5d671 (patch)
tree36ff6916af9b4176ea5a9662219d11e721f0b691 /src/kernel/timer.cc
parent1767d390fbf3d0c65389de46caf0b6d43ef3b6ad (diff)
downloadlume-e90b72ec3082588b296956730bd2930cf8d5d671.tar.gz
lume-e90b72ec3082588b296956730bd2930cf8d5d671.tar.xz
refactor: promote new architecture to repository root
Archive the deprecated implementation under lume-legacy, make the new kernel the default root-level build, and update repository entry points without changing kernel behavior.
Diffstat (limited to 'src/kernel/timer.cc')
-rw-r--r--src/kernel/timer.cc66
1 files changed, 0 insertions, 66 deletions
diff --git a/src/kernel/timer.cc b/src/kernel/timer.cc
deleted file mode 100644
index fc02f27..0000000
--- a/src/kernel/timer.cc
+++ /dev/null
@@ -1,66 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0-or-later
-/*
- * Copyright (C) 2026 Richard QIn
- */
-#include "common/types.h"
-#include "kernel/config.h"
-#include "kernel/spinlock.h"
-#include "kernel/proc.h"
-#include "kernel/sbi.h"
-
-#define INTERVAL 1000000
-
-namespace Timer
-{
- uint64 ticks;
- Spinlock tickslock;
-
- uint64 get_time()
- {
- uint64 time;
- asm volatile("rdtime %0" : "=r"(time));
- return time;
- }
-
- void set_next_trigger()
- {
- SBI::set_timer(get_time() + INTERVAL);
- }
-
- void init()
- {
- set_next_trigger();
-
- uint64 sie;
- asm volatile("csrr %0, sie" : "=r"(sie));
- sie |= (1L << 5);
- asm volatile("csrw sie, %0" : : "r"(sie));
- }
-
- void tick()
- {
- tickslock.acquire();
- ticks++;
- ProcManager::wakeup(&ticks);
- tickslock.release();
- set_next_trigger();
- }
-
- uint64 get_ticks()
- {
- tickslock.acquire();
- uint64 t = ticks;
- tickslock.release();
- return t;
- }
-
- Spinlock *get_lock()
- {
- return &tickslock;
- }
-
- void *get_tick_chan()
- {
- return &ticks;
- }
-} \ No newline at end of file