|
The Pedigree Project 0.1
|
Inheritance diagram for HostedSchedulerTimer:
Collaboration diagram for HostedSchedulerTimer:Public Member Functions | |
| virtual bool | registerHandler (SchedulerTimerHandler *handler) |
| uint64_t | nominalQuantumNs () const override |
| virtual bool | removeHandler (SchedulerTimerHandler *handler) |
| bool | initialise () INITIALISATION_ONLY |
| void | uninitialise () |
Public Member Functions inherited from SchedulerTimer | |
| virtual bool | supportsOneShot () const |
| virtual bool | armDeadline (uint64_t) |
| virtual void | disarm () |
Static Public Member Functions | |
| static HostedSchedulerTimer & | instance () |
Protected Member Functions | |
| HostedSchedulerTimer () INITIALISATION_ONLY | |
| virtual | ~HostedSchedulerTimer () |
Protected Member Functions inherited from SchedulerTimer | |
| SchedulerTimer () | |
| virtual | ~SchedulerTimer () |
Private Member Functions | |
| HostedSchedulerTimer (const HostedSchedulerTimer &) | |
| HostedSchedulerTimer & | operator= (const HostedSchedulerTimer &) |
| virtual void | schedulerIrq (irq_id_t number, InterruptState &state) |
Private Attributes | |
| irq_id_t | m_IrqId |
| HostedTickSource | m_TickSource |
| SchedulerTimerHandlerSlot | m_Handler |
| bool | m_bInitialized |
Static Private Attributes | |
| static HostedSchedulerTimer | m_Instance |
Additional Inherited Members | |
Static Protected Member Functions inherited from SchedulerTimer | |
| static bool | canRemoveHandlerInCurrentContext () |
Definition at line 36 of file kernel/machine/hosted/SchedulerTimer.h.
|
protected |
The default constructor
Definition at line 134 of file hosted/SchedulerTimer.cc.
|
protectedvirtual |
|
private |
The copy-constructor
| bool HostedSchedulerTimer::initialise | ( | ) |
Initialises the class
Definition at line 80 of file hosted/SchedulerTimer.cc.
References IrqManager::registerSchedulerIrqHandler(), and IrqManager::unregisterSchedulerIrqHandler().
|
inlinestatic |
Get the HostedSchedulerTimer class instance
Definition at line 39 of file kernel/machine/hosted/SchedulerTimer.h.
References m_Instance.
Referenced by HostedMachine::deinitialise(), HostedMachine::getSchedulerTimer(), and HostedMachine::initialise().
Here is the caller graph for this function:
|
overridevirtual |
Implements SchedulerTimer.
Definition at line 34 of file hosted/SchedulerTimer.cc.
|
private |
The assignment operator
|
virtual |
Publish the sole hard scheduler-tick owner for the calling processor. Registration, dispatch, and removal are processor-local operations.
Implements SchedulerTimer.
Definition at line 72 of file hosted/SchedulerTimer.cc.
References ProcessorBase::id(), m_Handler, and SchedulerTimerHandlerSlot::publish().
|
virtual |
Remove the calling processor's exact current owner.
A successful return is a callback-lifetime barrier: the processor's timer hard frame cannot overlap ordinary removal, and later frames no longer admit the callback. Cross-processor removal is rejected and returns false; callers must arrange teardown on the registered CPU in IRQ-enabled ordinary thread context. The callback's scoped dispatch admission rejects self-removal; hard and synthetic interrupt contexts are rejected before unpublication.
Implements SchedulerTimer.
Definition at line 76 of file hosted/SchedulerTimer.cc.
References SchedulerTimer::canRemoveHandlerInCurrentContext(), ProcessorBase::id(), m_Handler, and SchedulerTimerHandlerSlot::unpublish().
|
privatevirtual |
Implements SchedulerIrqHandler.
Definition at line 137 of file hosted/SchedulerTimer.cc.
| void HostedSchedulerTimer::uninitialise | ( | ) |
Uninitialises the class
Definition at line 108 of file hosted/SchedulerTimer.cc.
References IrqManager::unregisterSchedulerIrqHandler().
Referenced by HostedMachine::deinitialise(), and ~HostedSchedulerTimer().
Here is the caller graph for this function:
|
private |
Definition at line 99 of file kernel/machine/hosted/SchedulerTimer.h.
|
private |
The atomically published scheduler callback owner.
Definition at line 97 of file kernel/machine/hosted/SchedulerTimer.h.
Referenced by registerHandler(), and removeHandler().
|
staticprivate |
The HostedSchedulerTimer class instance
Definition at line 106 of file kernel/machine/hosted/SchedulerTimer.h.
Referenced by instance().
|
private |
Definition at line 93 of file kernel/machine/hosted/SchedulerTimer.h.
|
private |
Definition at line 94 of file kernel/machine/hosted/SchedulerTimer.h.