Skip to main content

os/
timer.rs

1use crate::device_tree::clock_freq;
2use crate::sbi::set_timer;
3use riscv::register::time;
4
5const TICKS_PER_SEC: usize = 100;
6const MSEC_PER_SEC: usize = 1000;
7
8pub fn get_time() -> usize {
9    time::read()
10}
11
12pub fn get_time_ms() -> usize {
13    time::read() / (clock_freq() / MSEC_PER_SEC)
14}
15
16pub fn set_next_trigger() {
17    set_timer(get_time() + clock_freq() / TICKS_PER_SEC);
18}