gem5  v20.1.0.0
Classes | Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes | List of all members
Intel8254Timer Class Reference

Programmable Interval Timer (Intel 8254) More...

#include <intel_8254_timer.hh>

Inheritance diagram for Intel8254Timer:
EventManager 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 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 EventManager
EventQueueeventq
 A pointer to this object's event queue. More...
 

Detailed Description

Programmable Interval Timer (Intel 8254)

Definition at line 43 of file intel_8254_timer.hh.

Member Enumeration Documentation

◆ ModeVal

enum Intel8254Timer::ModeVal
protected
Enumerator
InitTc 
OneShot 
RateGen 
SquareWave 
SoftwareStrobe 
HardwareStrobe 

Definition at line 67 of file intel_8254_timer.hh.

◆ ReadWriteVal

Enumerator
LatchCommand 
LsbOnly 
MsbOnly 
TwoPhase 

Definition at line 60 of file intel_8254_timer.hh.

Constructor & Destructor Documentation

◆ ~Intel8254Timer()

virtual Intel8254Timer::~Intel8254Timer ( )
inlinevirtual

Definition at line 208 of file intel_8254_timer.hh.

◆ Intel8254Timer() [1/2]

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

◆ Intel8254Timer() [2/2]

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

Member Function Documentation

◆ BitUnion8()

Intel8254Timer::BitUnion8 ( CtrlReg  )
protected

◆ counterInterrupt()

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

Reimplemented in X86ISA::I8254::X86Intel8254Timer.

Definition at line 200 of file intel_8254_timer.hh.

References DPRINTF.

Referenced by Intel8254Timer::Counter::CounterEvent::process().

◆ EndBitUnion()

Intel8254Timer::EndBitUnion ( CtrlReg  )
inlineprotected

Definition at line 51 of file intel_8254_timer.hh.

◆ name()

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

Definition at line 194 of file intel_8254_timer.hh.

References _name.

◆ outputHigh()

bool Intel8254Timer::outputHigh ( unsigned int  num)
inline

Definition at line 234 of file intel_8254_timer.hh.

References counter, and Intel8254Timer::Counter::outputHigh().

Referenced by X86ISA::I8254::outputHigh().

◆ readCounter()

uint8_t Intel8254Timer::readCounter ( unsigned int  num)
inline

Definition at line 220 of file intel_8254_timer.hh.

References counter, and Intel8254Timer::Counter::read().

Referenced by X86ISA::I8254::readCounter().

◆ serialize()

void 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 71 of file intel_8254_timer.cc.

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

Referenced by MaltaIO::serialize().

◆ startup()

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().

◆ unserialize()

void 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 80 of file intel_8254_timer.cc.

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

Referenced by MaltaIO::unserialize().

◆ writeControl()

void Intel8254Timer::writeControl ( const CtrlReg  data)

◆ writeCounter()

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

Definition at line 227 of file intel_8254_timer.hh.

References counter, data, and Intel8254Timer::Counter::write().

Referenced by X86ISA::I8254::writeCounter().

Member Data Documentation

◆ _name

std::string Intel8254Timer::_name
protected

Definition at line 193 of file intel_8254_timer.hh.

Referenced by name().

◆ bcd

Bitfield<0> Intel8254Timer::bcd
protected

Definition at line 50 of file intel_8254_timer.hh.

◆ counter

Counter* Intel8254Timer::counter[3]
protected

◆ mode

Bitfield<3, 1> Intel8254Timer::mode
protected

◆ rw

Bitfield<5, 4> Intel8254Timer::rw
protected

Definition at line 48 of file intel_8254_timer.hh.

◆ sel

Intel8254Timer::sel
protected

Definition at line 47 of file intel_8254_timer.hh.

Referenced by writeControl().


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

Generated on Wed Sep 30 2020 14:02:26 for gem5 by doxygen 1.8.17