#pragma once #include #include #ifdef ARCH_X86_64 #include "arch/x86_64/Timer.h" #else #error "Unknown architecture." #endif 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(); struct timespec* realtime_clock(); void arch_init(); void init(); } bool should_invoke_scheduler();