gem5  v21.2.1.0
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
Classes | Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes | List of all members
gem5::Intel8254Timer Class Reference

Programmable Interval Timer (Intel 8254) More...

#include <intel_8254_timer.hh>

Inheritance diagram for gem5::Intel8254Timer:
gem5::EventManager gem5::X86ISA::I8254::X86Intel8254Timer

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 gem5::EventManager
EventQueueeventQueue () 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
 
Countercounter [3]
 PIT has three seperate counters. More...
 
- Protected Attributes inherited from gem5::EventManager
EventQueueeventq
 A pointer to this object's event queue. More...
 

Detailed Description

Programmable Interval Timer (Intel 8254)

Definition at line 46 of file intel_8254_timer.hh.

Member Enumeration Documentation

◆ ModeVal

Enumerator
InitTc 
OneShot 
RateGen 
SquareWave 
SoftwareStrobe 
HardwareStrobe 

Definition at line 72 of file intel_8254_timer.hh.

◆ ReadWriteVal

Enumerator
LatchCommand 
LsbOnly 
MsbOnly 
TwoPhase 

Definition at line 64 of file intel_8254_timer.hh.

Constructor & Destructor Documentation

◆ ~Intel8254Timer()

virtual gem5::Intel8254Timer::~Intel8254Timer ( )
inlinevirtual

Definition at line 214 of file intel_8254_timer.hh.

◆ Intel8254Timer() [1/2]

gem5::Intel8254Timer::Intel8254Timer ( EventManager em,
const std::string &  name,
Counter counter0,
Counter counter1,
Counter counter2 
)

Definition at line 39 of file intel_8254_timer.cc.

References counter.

◆ Intel8254Timer() [2/2]

gem5::Intel8254Timer::Intel8254Timer ( EventManager em,
const std::string &  name 
)

Definition at line 48 of file intel_8254_timer.cc.

References counter, and name().

Member Function Documentation

◆ BitUnion8()

gem5::Intel8254Timer::BitUnion8 ( CtrlReg  )
protected

◆ counterInterrupt()

virtual void gem5::Intel8254Timer::counterInterrupt ( unsigned int  num)
inlineprotectedvirtual

◆ EndBitUnion()

gem5::Intel8254Timer::EndBitUnion ( CtrlReg  )
inlineprotected

Definition at line 54 of file intel_8254_timer.hh.

◆ name()

const std::string& gem5::Intel8254Timer::name ( ) const
inlineprotected

Definition at line 200 of file intel_8254_timer.hh.

References _name.

Referenced by Intel8254Timer().

◆ outputHigh()

bool gem5::Intel8254Timer::outputHigh ( unsigned int  num)
inline

◆ readCounter()

uint8_t gem5::Intel8254Timer::readCounter ( unsigned int  num)
inline

◆ serialize()

void gem5::Intel8254Timer::serialize ( const std::string &  base,
CheckpointOut cp 
) const

Serialize this object to the given output stream.

Parameters
baseThe base name of the counter object.
osThe stream to serialize to.

Definition at line 74 of file intel_8254_timer.cc.

References gem5::X86ISA::base, counter, and gem5::Intel8254Timer::Counter::serialize().

Referenced by gem5::MaltaIO::serialize().

◆ startup()

void gem5::Intel8254Timer::startup ( )

Start ticking.

Definition at line 92 of file intel_8254_timer.cc.

References counter, and gem5::Intel8254Timer::Counter::startup().

Referenced by gem5::MaltaIO::startup().

◆ unserialize()

void gem5::Intel8254Timer::unserialize ( const std::string &  base,
CheckpointIn cp 
)

Reconstruct the state of this object from a checkpoint.

Parameters
baseThe base name of the counter object.
cpThe checkpoint use.
sectionThe section name of this object

Definition at line 83 of file intel_8254_timer.cc.

References gem5::X86ISA::base, counter, and gem5::Intel8254Timer::Counter::unserialize().

Referenced by gem5::MaltaIO::unserialize().

◆ writeControl()

void gem5::Intel8254Timer::writeControl ( const CtrlReg  data)

◆ writeCounter()

void gem5::Intel8254Timer::writeCounter ( unsigned int  num,
const uint8_t  data 
)
inline

Member Data Documentation

◆ _name

std::string gem5::Intel8254Timer::_name
protected

Definition at line 199 of file intel_8254_timer.hh.

Referenced by name().

◆ bcd

Bitfield<0> gem5::Intel8254Timer::bcd
protected

Definition at line 53 of file intel_8254_timer.hh.

◆ counter

Counter* gem5::Intel8254Timer::counter[3]
protected

◆ mode

Bitfield<3, 1> gem5::Intel8254Timer::mode
protected

◆ rw

Bitfield<5, 4> gem5::Intel8254Timer::rw
protected

Definition at line 51 of file intel_8254_timer.hh.

◆ sel

gem5::Intel8254Timer::sel
protected

Definition at line 50 of file intel_8254_timer.hh.

Referenced by writeControl().


The documentation for this class was generated from the following files:

Generated on Tue Feb 8 2022 11:47:54 for gem5 by doxygen 1.8.17