gem5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Classes | Public Member Functions | Private Types | Private Member Functions | Private Attributes | List of all members
Intel8254Timer::Counter Class Reference

Counter element for PIT. More...

#include <intel_8254_timer.hh>

Classes

class  CounterEvent
 Event for counter interrupt. More...
 

Public Member Functions

 Counter (Intel8254Timer *p, const std::string &name, unsigned int num)
 
void latchCount ()
 Latch the current count (if one is not already latched) More...
 
int currentCount ()
 Get the current count for this counter. More...
 
void setRW (int rw_val)
 Set the read/write mode. More...
 
void setMode (int mode_val)
 Set operational mode. More...
 
void setBCD (int bcd_val)
 Set count encoding. More...
 
uint8_t read ()
 Read a count byte. More...
 
void write (const uint8_t data)
 Write a count byte. More...
 
bool outputHigh ()
 Is the output high? More...
 
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...
 

Private Types

enum  { LSB, MSB }
 Set of values for read_byte and write_byte. More...
 

Private Member Functions

const std::string & name () const
 

Private Attributes

std::string _name
 
unsigned int num
 
CounterEvent event
 
bool running
 True after startup is called. More...
 
uint16_t initial_count
 Initial count value. More...
 
uint16_t latched_count
 Latched count. More...
 
uint16_t period
 Interrupt period. More...
 
Tick offset
 When to start ticking. More...
 
uint8_t mode
 Current mode of operation. More...
 
bool output_high
 Output goes high when the counter reaches zero. More...
 
bool latch_on
 State of the count latch. More...
 
uint8_t read_byte
 Determine which byte of a 16-bit count value to read/write. More...
 
uint8_t write_byte
 
Intel8254Timerparent
 Pointer to container. More...
 

Detailed Description

Counter element for PIT.

Definition at line 81 of file intel_8254_timer.hh.

Member Enumeration Documentation

anonymous enum
private

Set of values for read_byte and write_byte.

Enumerator
LSB 
MSB 

Definition at line 142 of file intel_8254_timer.hh.

Constructor & Destructor Documentation

Intel8254Timer::Counter::Counter ( Intel8254Timer p,
const std::string &  name,
unsigned int  num 
)

Definition at line 100 of file intel_8254_timer.cc.

References offset, and period.

Member Function Documentation

int Intel8254Timer::Counter::currentCount ( )

Get the current count for this counter.

Definition at line 122 of file intel_8254_timer.cc.

References Intel8254Timer::mode, Intel8254Timer::RateGen, Intel8254Timer::SquareWave, and warn_once.

void Intel8254Timer::Counter::latchCount ( )

Latch the current count (if one is not already latched)

Definition at line 111 of file intel_8254_timer.cc.

Referenced by Intel8254Timer::writeControl().

const std::string& Intel8254Timer::Counter::name ( ) const
inlineprivate

Definition at line 111 of file intel_8254_timer.hh.

References _name.

bool Intel8254Timer::Counter::outputHigh ( )

Is the output high?

Definition at line 226 of file intel_8254_timer.cc.

Referenced by Intel8254Timer::outputHigh().

uint8_t Intel8254Timer::Counter::read ( )

Read a count byte.

Definition at line 136 of file intel_8254_timer.cc.

References X86ISA::count, and panic.

Referenced by Intel8254Timer::readCounter().

void Intel8254Timer::Counter::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 232 of file intel_8254_timer.cc.

References curTick(), MipsISA::event, Intel8254Timer::mode, and paramOut().

Referenced by Intel8254Timer::serialize().

void Intel8254Timer::Counter::setBCD ( int  bcd_val)

Set count encoding.

Definition at line 219 of file intel_8254_timer.cc.

References panic.

Referenced by Intel8254Timer::writeControl().

void Intel8254Timer::Counter::setMode ( int  mode_val)
void Intel8254Timer::Counter::setRW ( int  rw_val)

Set the read/write mode.

Definition at line 202 of file intel_8254_timer.cc.

References panic, and Intel8254Timer::TwoPhase.

Referenced by Intel8254Timer::writeControl().

void Intel8254Timer::Counter::startup ( )

Start ticking.

Definition at line 268 of file intel_8254_timer.cc.

References curTick(), MipsISA::event, and ArmISA::offset.

Referenced by Intel8254Timer::startup().

void Intel8254Timer::Counter::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 250 of file intel_8254_timer.cc.

References MipsISA::event, Intel8254Timer::mode, ArmISA::offset, and paramIn().

Referenced by Intel8254Timer::unserialize().

void Intel8254Timer::Counter::write ( const uint8_t  data)

Member Data Documentation

std::string Intel8254Timer::Counter::_name
private

Definition at line 110 of file intel_8254_timer.hh.

Referenced by name().

CounterEvent Intel8254Timer::Counter::event
private

Definition at line 115 of file intel_8254_timer.hh.

uint16_t Intel8254Timer::Counter::initial_count
private

Initial count value.

Definition at line 121 of file intel_8254_timer.hh.

bool Intel8254Timer::Counter::latch_on
private

State of the count latch.

Definition at line 139 of file intel_8254_timer.hh.

uint16_t Intel8254Timer::Counter::latched_count
private

Latched count.

Definition at line 124 of file intel_8254_timer.hh.

uint8_t Intel8254Timer::Counter::mode
private

Current mode of operation.

Definition at line 133 of file intel_8254_timer.hh.

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

unsigned int Intel8254Timer::Counter::num
private

Definition at line 113 of file intel_8254_timer.hh.

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

Tick Intel8254Timer::Counter::offset
private

When to start ticking.

Definition at line 130 of file intel_8254_timer.hh.

Referenced by Counter().

bool Intel8254Timer::Counter::output_high
private

Output goes high when the counter reaches zero.

Definition at line 136 of file intel_8254_timer.hh.

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

Intel8254Timer* Intel8254Timer::Counter::parent
private
uint16_t Intel8254Timer::Counter::period
private

Interrupt period.

Definition at line 127 of file intel_8254_timer.hh.

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

uint8_t Intel8254Timer::Counter::read_byte
private

Determine which byte of a 16-bit count value to read/write.

Definition at line 145 of file intel_8254_timer.hh.

bool Intel8254Timer::Counter::running
private

True after startup is called.

Definition at line 118 of file intel_8254_timer.hh.

uint8_t Intel8254Timer::Counter::write_byte
private

Definition at line 145 of file intel_8254_timer.hh.


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

Generated on Fri Jun 9 2017 13:04:13 for gem5 by doxygen 1.8.6