|
gem5
v19.0.0.0
|
Programmable Interval Timer (Intel 8254) More...
#include <intel_8254_timer.hh>
Classes | |
| class | Counter |
| Counter element for PIT. More... | |
Public Member Functions | |
| virtual | ~Intel8254Timer () |
| Intel8254Timer (EventManager *em, const std::string &name, Counter *counter0, Counter *counter1, Counter *counter2) | |
| Intel8254Timer (EventManager *em, const std::string &name) | |
| void | writeControl (const CtrlReg data) |
| Write control word. More... | |
| uint8_t | readCounter (unsigned int num) |
| void | writeCounter (unsigned int num, const uint8_t data) |
| bool | outputHigh (unsigned int num) |
| void | serialize (const std::string &base, CheckpointOut &cp) const |
| Serialize this object to the given output stream. More... | |
| void | unserialize (const std::string &base, CheckpointIn &cp) |
| Reconstruct the state of this object from a checkpoint. More... | |
| void | startup () |
| Start ticking. More... | |
Public Member Functions inherited from EventManager | |
| EventManager (EventManager &em) | |
| EventManager (EventManager *em) | |
| EventManager (EventQueue *eq) | |
| EventQueue * | eventQueue () const |
| void | schedule (Event &event, Tick when) |
| void | deschedule (Event &event) |
| void | reschedule (Event &event, Tick when, bool always=false) |
| void | schedule (Event *event, Tick when) |
| void | deschedule (Event *event) |
| void | reschedule (Event *event, Tick when, bool always=false) |
| void | wakeupEventQueue (Tick when=(Tick) -1) |
| void | setCurTick (Tick newVal) |
Protected Types | |
| enum | ReadWriteVal { LatchCommand, LsbOnly, MsbOnly, TwoPhase } |
| enum | ModeVal { InitTc, OneShot, RateGen, SquareWave, SoftwareStrobe, HardwareStrobe } |
Protected Member Functions | |
| BitUnion8 (CtrlReg) Bitfield< 7 | |
| EndBitUnion (CtrlReg) enum SelectVal | |
| const std::string & | name () const |
| virtual void | counterInterrupt (unsigned int num) |
Protected Attributes | |
| sel | |
| Bitfield< 5, 4 > | rw |
| Bitfield< 3, 1 > | mode |
| Bitfield< 0 > | bcd |
| std::string | _name |
| Counter * | counter [3] |
| PIT has three seperate counters. More... | |
Protected Attributes inherited from EventManager | |
| EventQueue * | eventq |
| A pointer to this object's event queue. More... | |
Programmable Interval Timer (Intel 8254)
Definition at line 47 of file intel_8254_timer.hh.
|
protected |
| Enumerator | |
|---|---|
| InitTc | |
| OneShot | |
| RateGen | |
| SquareWave | |
| SoftwareStrobe | |
| HardwareStrobe | |
Definition at line 71 of file intel_8254_timer.hh.
|
protected |
| Enumerator | |
|---|---|
| LatchCommand | |
| LsbOnly | |
| MsbOnly | |
| TwoPhase | |
Definition at line 64 of file intel_8254_timer.hh.
|
inlinevirtual |
Definition at line 212 of file intel_8254_timer.hh.
References data, X86ISA::em, Intel8254Timer(), Event::name(), and writeControl().
| Intel8254Timer::Intel8254Timer | ( | EventManager * | em, |
| const std::string & | name, | ||
| Counter * | counter0, | ||
| Counter * | counter1, | ||
| Counter * | counter2 | ||
| ) |
Referenced by ~Intel8254Timer().
| Intel8254Timer::Intel8254Timer | ( | EventManager * | em, |
| const std::string & | name | ||
| ) |
|
protected |
|
inlineprotectedvirtual |
Reimplemented in X86ISA::I8254::X86Intel8254Timer.
Definition at line 204 of file intel_8254_timer.hh.
References DPRINTF.
Referenced by Intel8254Timer::Counter::CounterEvent::process().
|
inlineprotected |
Definition at line 55 of file intel_8254_timer.hh.
|
inlineprotected |
Definition at line 198 of file intel_8254_timer.hh.
References Intel8254Timer::Counter::_name.
Referenced by X86ISA::I8254::I8254().
|
inline |
Definition at line 238 of file intel_8254_timer.hh.
References X86ISA::base, Intel8254Timer::Counter::num, Intel8254Timer::Counter::outputHigh(), Event::serialize(), Intel8254Timer::Counter::startup(), and Event::unserialize().
Referenced by X86ISA::I8254::outputHigh(), and TsunamiIO::read().
|
inline |
Definition at line 224 of file intel_8254_timer.hh.
References Intel8254Timer::Counter::num, and Intel8254Timer::Counter::read().
Referenced by X86ISA::I8254::read(), TsunamiIO::read(), and X86ISA::I8254::readCounter().
| void Intel8254Timer::serialize | ( | const std::string & | base, |
| CheckpointOut & | cp | ||
| ) | const |
Serialize this object to the given output stream.
| base | The base name of the counter object. |
| os | The stream to serialize to. |
Definition at line 75 of file intel_8254_timer.cc.
Referenced by X86ISA::I8254::serialize(), MaltaIO::serialize(), TsunamiIO::serialize(), and X86ISA::I8254::writeControl().
| void Intel8254Timer::startup | ( | ) |
Start ticking.
Definition at line 93 of file intel_8254_timer.cc.
Referenced by X86ISA::I8254::startup(), MaltaIO::startup(), TsunamiIO::startup(), and X86ISA::I8254::writeControl().
| void Intel8254Timer::unserialize | ( | const std::string & | base, |
| CheckpointIn & | cp | ||
| ) |
Reconstruct the state of this object from a checkpoint.
| base | The base name of the counter object. |
| cp | The checkpoint use. |
| section | The section name of this object |
Definition at line 84 of file intel_8254_timer.cc.
Referenced by X86ISA::I8254::unserialize(), MaltaIO::unserialize(), TsunamiIO::unserialize(), and X86ISA::I8254::writeControl().
| void Intel8254Timer::writeControl | ( | const CtrlReg | data | ) |
Write control word.
Definition at line 58 of file intel_8254_timer.cc.
References panic, and ArmISA::sel.
Referenced by X86ISA::I8254::write(), TsunamiIO::write(), X86ISA::I8254::writeControl(), and ~Intel8254Timer().
|
inline |
Definition at line 231 of file intel_8254_timer.hh.
References Intel8254Timer::Counter::num, and Intel8254Timer::Counter::write().
Referenced by X86ISA::I8254::write(), TsunamiIO::write(), and X86ISA::I8254::writeCounter().
|
protected |
Definition at line 197 of file intel_8254_timer.hh.
|
protected |
Definition at line 54 of file intel_8254_timer.hh.
|
protected |
PIT has three seperate counters.
Definition at line 201 of file intel_8254_timer.hh.
Referenced by Intel8254Timer::Counter::CounterEvent::CounterEvent(), Intel8254Timer::Counter::CounterEvent::process(), and Intel8254Timer::Counter::CounterEvent::setTo().
|
protected |
Definition at line 53 of file intel_8254_timer.hh.
|
protected |
Definition at line 52 of file intel_8254_timer.hh.
|
protected |
Definition at line 51 of file intel_8254_timer.hh.