Luna/kernel/src/arch/Timer.h

30 lines
530 B
C
Raw Normal View History

2022-11-19 19:01:01 +00:00
#pragma once
#include <bits/timespec.h>
#include <luna/Types.h>
2022-11-19 19:01:01 +00:00
#ifdef ARCH_X86_64
#include "arch/x86_64/Timer.h"
#else
#error "Unknown architecture."
#endif
2022-11-19 19:01:01 +00:00
static const usize MS_PER_SECOND = 1000;
static const usize US_PER_SECOND = MS_PER_SECOND * 1000;
static const usize NS_PER_SECOND = US_PER_SECOND * 1000;
namespace Timer
{
void tick();
usize ticks_ms();
struct timespec* monotonic_clock();
2022-11-19 19:01:01 +00:00
struct timespec* realtime_clock();
2022-11-19 19:01:01 +00:00
void arch_init();
void init();
2022-12-07 11:15:30 +00:00
}
2023-01-02 12:07:29 +00:00
bool should_invoke_scheduler();