The Pedigree Project
0.1
src
system
kernel
machine
mach_virt
kernel/machine/mach_virt/SchedulerTimer.h
1
/*
2
* Copyright (c) 2026, Pedigree Developers
3
*
4
* Permission to use, copy, modify, and distribute this software for any
5
* purpose with or without fee is hereby granted.
6
*/
7
8
#ifndef KERNEL_MACHINE_VIRT_SCHEDULERTIMER_H
9
#define KERNEL_MACHINE_VIRT_SCHEDULERTIMER_H
10
11
#include "pedigree/kernel/machine/SchedulerIrqHandler.h"
12
#include "pedigree/kernel/machine/SchedulerTimer.h"
13
#include "pedigree/kernel/machine/SchedulerTimerHandlerSlot.h"
14
15
class
VirtSchedulerTimer
:
public
SchedulerTimer
,
private
SchedulerIrqHandler
{
16
public
:
17
static
VirtSchedulerTimer
& instance();
18
19
bool
initialise();
20
void
uninitialise();
21
bool
registerHandler
(
SchedulerTimerHandler
* handler)
override
;
22
bool
removeHandler
(
SchedulerTimerHandler
* handler)
override
;
23
uint64_t nominalQuantumNs()
const override
;
24
25
private
:
26
VirtSchedulerTimer
();
27
~VirtSchedulerTimer
()
override
;
28
void
schedulerIrq(irq_id_t number, InterruptState& state)
override
;
29
uint64_t counter()
const
;
30
uint64_t ticksToNanoseconds(uint64_t ticks)
const
;
31
32
SchedulerTimerHandlerSlot
m_Handler;
33
uint64_t m_Frequency;
34
uint64_t m_LastCount;
35
uint32_t m_IntervalTicks;
36
irq_id_t m_IrqId;
37
bool
m_Initialised;
38
39
static
VirtSchedulerTimer
m_Instance;
40
};
41
42
#endif
SchedulerIrqHandler
Definition
SchedulerIrqHandler.h:25
SchedulerTimerHandlerSlot
Definition
SchedulerTimerHandlerSlot.h:29
SchedulerTimerHandler
Definition
SchedulerTimerHandler.h:37
SchedulerTimer
Definition
include/pedigree/kernel/machine/SchedulerTimer.h:30
VirtSchedulerTimer
Definition
kernel/machine/mach_virt/SchedulerTimer.h:15
VirtSchedulerTimer::registerHandler
bool registerHandler(SchedulerTimerHandler *handler) override
Definition
mach_virt/SchedulerTimer.cc:90
VirtSchedulerTimer::removeHandler
bool removeHandler(SchedulerTimerHandler *handler) override
Definition
mach_virt/SchedulerTimer.cc:94
Generated on Tue Sep 29 2026 04:30:11 for The Pedigree Project by
1.9.8