|
gem5
v20.1.0.5
|
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 | |
| 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) |
| This function is not needed by the usual gem5 event loop but may be necessary in derived EventQueues which host gem5 on other schedulers. More... | |
| void | setCurTick (Tick newVal) |
| EventManager (EventManager &em) | |
| Event manger manages events in the event queue. More... | |
| EventManager (EventManager *em) | |
| EventManager (EventQueue *eq) | |
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 43 of file intel_8254_timer.hh.
|
protected |
| Enumerator | |
|---|---|
| InitTc | |
| OneShot | |
| RateGen | |
| SquareWave | |
| SoftwareStrobe | |
| HardwareStrobe | |
Definition at line 67 of file intel_8254_timer.hh.
|
protected |
| Enumerator | |
|---|---|
| LatchCommand | |
| LsbOnly | |
| MsbOnly | |
| TwoPhase | |
Definition at line 60 of file intel_8254_timer.hh.
|
inlinevirtual |
Definition at line 208 of file intel_8254_timer.hh.
| Intel8254Timer::Intel8254Timer | ( | EventManager * | em, |
| const std::string & | name, | ||
| Counter * | counter0, | ||
| Counter * | counter1, | ||
| Counter * | counter2 | ||
| ) |
| Intel8254Timer::Intel8254Timer | ( | EventManager * | em, |
| const std::string & | name | ||
| ) |
|
protected |
|
inlineprotectedvirtual |
Reimplemented in X86ISA::I8254::X86Intel8254Timer.
Definition at line 200 of file intel_8254_timer.hh.
References DPRINTF.
Referenced by Intel8254Timer::Counter::CounterEvent::process().
|
inlineprotected |
Definition at line 51 of file intel_8254_timer.hh.
|
inlineprotected |
Definition at line 194 of file intel_8254_timer.hh.
References _name.
|
inline |
Definition at line 234 of file intel_8254_timer.hh.
References counter, and Intel8254Timer::Counter::outputHigh().
Referenced by X86ISA::I8254::outputHigh().
|
inline |
Definition at line 220 of file intel_8254_timer.hh.
References counter, and Intel8254Timer::Counter::read().
Referenced by 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 71 of file intel_8254_timer.cc.
References X86ISA::base, counter, and Intel8254Timer::Counter::serialize().
Referenced by MaltaIO::serialize().
| void Intel8254Timer::startup | ( | ) |
Start ticking.
Definition at line 89 of file intel_8254_timer.cc.
References counter, and Intel8254Timer::Counter::startup().
Referenced by MaltaIO::startup().
| 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 80 of file intel_8254_timer.cc.
References X86ISA::base, counter, and Intel8254Timer::Counter::unserialize().
Referenced by MaltaIO::unserialize().
| void Intel8254Timer::writeControl | ( | const CtrlReg | data | ) |
Write control word.
Definition at line 54 of file intel_8254_timer.cc.
References counter, data, LatchCommand, Intel8254Timer::Counter::latchCount(), panic, sel, Intel8254Timer::Counter::setBCD(), Intel8254Timer::Counter::setMode(), and Intel8254Timer::Counter::setRW().
Referenced by X86ISA::I8254::writeControl().
|
inline |
Definition at line 227 of file intel_8254_timer.hh.
References counter, data, and Intel8254Timer::Counter::write().
Referenced by X86ISA::I8254::writeCounter().
|
protected |
Definition at line 193 of file intel_8254_timer.hh.
Referenced by name().
|
protected |
Definition at line 50 of file intel_8254_timer.hh.
|
protected |
PIT has three seperate counters.
Definition at line 197 of file intel_8254_timer.hh.
Referenced by Intel8254Timer::Counter::CounterEvent::CounterEvent(), outputHigh(), Intel8254Timer::Counter::CounterEvent::process(), readCounter(), serialize(), Intel8254Timer::Counter::CounterEvent::setTo(), startup(), unserialize(), writeControl(), and writeCounter().
|
protected |
Definition at line 49 of file intel_8254_timer.hh.
Referenced by Intel8254Timer::Counter::currentCount(), Intel8254Timer::Counter::serialize(), Intel8254Timer::Counter::setMode(), Intel8254Timer::Counter::unserialize(), and Intel8254Timer::Counter::write().
|
protected |
Definition at line 48 of file intel_8254_timer.hh.
|
protected |
Definition at line 47 of file intel_8254_timer.hh.
Referenced by writeControl().