Files
exectos/xtoskrnl/includes/hl/timer.hh
Aiken Harris 53c5946c04
Some checks failed
Builds / ExectOS (amd64, release) (push) Failing after 30s
Builds / ExectOS (i686, debug) (push) Failing after 29s
Builds / ExectOS (amd64, debug) (push) Failing after 33s
Builds / ExectOS (i686, release) (push) Failing after 37s
Clean up APIC timer initialization
2026-04-08 20:23:37 +02:00

39 lines
1.1 KiB
C++

/**
* PROJECT: ExectOS
* COPYRIGHT: See COPYING.md in the top level directory
* FILE: xtoskrnl/includes/hl/timer.hh
* DESCRIPTION: ACPI Timer support
* DEVELOPERS: Aiken Harris <harraiken91@gmail.com>
*/
#ifndef __XTOSKRNL_HL_TIMER_HH
#define __XTOSKRNL_HL_TIMER_HH
#include <xtos.hh>
/* Hardware Layer */
namespace HL
{
class Timer
{
private:
STATIC ULONG ProfilingInterval;
STATIC ULONG TimerFrequency;
public:
STATIC XTAPI VOID InitializeApicTimer(VOID);
STATIC XTAPI ULONG_PTR SetProfileInterval(IN ULONG_PTR Interval);
STATIC XTAPI VOID StartProfileInterrupt(IN KPROFILE_SOURCE ProfileSource);
STATIC XTAPI VOID StopProfileInterrupt(IN KPROFILE_SOURCE ProfileSource);
private:
STATIC XTAPI XTSTATUS CalibrateApicTimer();
STATIC XTAPI XTSTATUS GetApicTimerFrequency(OUT PULONG Frequency);
STATIC XTAPI VOID PitStallExecution(IN ULONG MicroSeconds);
STATIC XTAPI VOID StallExecution(IN ULONG MicroSeconds);
};
}
#endif /* __XTOSKRNL_HL_TIMER_HH */