|
gem5
v21.1.0.2
|
Timer based on standard POSIX timers. More...
#include <timer.hh>
Public Member Functions | |
| PosixKvmTimer (int signo, clockid_t clockID, float hostFactor, Tick hostFreq) | |
| ~PosixKvmTimer () | |
| void | arm (Tick ticks) override |
| Arm the timer so that it fires after a certain number of ticks. More... | |
| void | disarm () override |
| Disarm the timer. More... | |
| bool | expired () override |
Public Member Functions inherited from gem5::BaseKvmTimer | |
| BaseKvmTimer (int signo, float hostFactor, Tick hostFreq) | |
| Setup basic timer functionality shared by all timer implementations. More... | |
| virtual | ~BaseKvmTimer () |
| Tick | resolution () |
| Determine the resolution of the timer in ticks. More... | |
| Tick | ticksFromHostCycles (uint64_t cycles) |
| Convert cycles executed on the host into Ticks executed in the simulator. More... | |
| Tick | ticksFromHostNs (uint64_t ns) |
| Convert nanoseconds executed on the host into Ticks executed in the simulator. More... | |
Protected Member Functions | |
| Tick | calcResolution () override |
| Calculate the timer resolution, used by resolution() which caches the result. More... | |
Protected Member Functions inherited from gem5::BaseKvmTimer | |
| uint64_t | hostNs (Tick ticks) |
| Convert a time in simulator ticks to host nanoseconds. More... | |
| uint64_t | hostCycles (Tick ticks) |
| Convert a time in simulator ticks to host cycles. More... | |
Private Attributes | |
| clockid_t | clockID |
| timer_t | timer |
| struct itimerspec | prevTimerSpec |
Additional Inherited Members | |
Protected Attributes inherited from gem5::BaseKvmTimer | |
| int | signo |
| Signal to deliver when the timer times out. More... | |
Timer based on standard POSIX timers.
The POSIX timer API supports several different clock with different characteristics.
| gem5::PosixKvmTimer::PosixKvmTimer | ( | int | signo, |
| clockid_t | clockID, | ||
| float | hostFactor, | ||
| Tick | hostFreq | ||
| ) |
| signo | Signal to deliver |
| clockID | ID of the clock to use |
| hostFactor | Performance scaling factor |
| hostFreq | Clock frequency of the host |
Definition at line 79 of file timer.cc.
References clockID, panic, gem5::BaseKvmTimer::signo, gem5::sysGettid(), and timer.
|
overridevirtual |
Arm the timer so that it fires after a certain number of ticks.
| ticks | Number of ticks until the timer fires |
Implements gem5::BaseKvmTimer.
Definition at line 103 of file timer.cc.
References DPRINTF, gem5::BaseKvmTimer::hostNs(), panic, timer, and gem5::ArmISA::ts.
|
overrideprotectedvirtual |
Calculate the timer resolution, used by resolution() which caches the result.
Implements gem5::BaseKvmTimer.
Definition at line 144 of file timer.cc.
References clockID, gem5::MIN_HOST_CYCLES, panic, gem5::BaseKvmTimer::resolution(), gem5::BaseKvmTimer::ticksFromHostCycles(), gem5::BaseKvmTimer::ticksFromHostNs(), and gem5::ArmISA::ts.
|
overridevirtual |
Disarm the timer.
When this method has returned, the timer may no longer deliver signals upon timeout.
Implements gem5::BaseKvmTimer.
Definition at line 123 of file timer.cc.
References DPRINTF, panic, prevTimerSpec, timer, and gem5::ArmISA::ts.
|
overridevirtual |
Reimplemented from gem5::BaseKvmTimer.
Definition at line 137 of file timer.cc.
References prevTimerSpec.
|
private |
Definition at line 208 of file timer.hh.
Referenced by calcResolution(), and PosixKvmTimer().
|
private |
|
private |
Definition at line 209 of file timer.hh.
Referenced by arm(), disarm(), PosixKvmTimer(), and ~PosixKvmTimer().