gem5 v24.0.0.0
Loading...
Searching...
No Matches
gem5::ArmISA::PMU::CounterState Struct Reference

State of a counter within the PMU. More...

#include <pmu.hh>

Inheritance diagram for gem5::ArmISA::PMU::CounterState:
gem5::Serializable

Public Member Functions

 CounterState (PMU &pmuReference, uint64_t counter_id, const bool is_64_bit)
 
void serialize (CheckpointOut &cp) const override
 Serialize an object.
 
void unserialize (CheckpointIn &cp) override
 Unserialize an object.
 
uint64_t add (uint64_t delta)
 Add an event count to the counter and check for overflow.
 
bool isFiltered () const
 
void detach ()
 Detach the counter from its event.
 
void attach (const std::shared_ptr< PMUEvent > &event)
 Attach this counter to an event.
 
uint64_t getCounterId () const
 Obtain the counter id.
 
uint64_t getValue () const
 rReturn the counter value
 
void setValue (uint64_t val)
 overwrite the value of the counter
 
- Public Member Functions inherited from gem5::Serializable
 Serializable ()
 
virtual ~Serializable ()
 
void serializeSection (CheckpointOut &cp, const char *name) const
 Serialize an object into a new section.
 
void serializeSection (CheckpointOut &cp, const std::string &name) const
 
void unserializeSection (CheckpointIn &cp, const char *name)
 Unserialize an a child object.
 
void unserializeSection (CheckpointIn &cp, const std::string &name)
 

Public Attributes

EventTypeId eventId
 Counter event ID.
 
PMEVTYPER_t filter
 Filtering settings (evtCount is unused)
 
bool enabled
 Is the counter enabled?
 
bool overflow64
 Is this a 64-bit counter?
 

Protected Member Functions

template<typename ... Args>
void debugCounter (const char *mainString, Args &...args) const
 

Protected Attributes

std::shared_ptr< PMUEventsourceEvent
 PmuEvent currently in use (if any)
 
uint64_t counterId
 id of the counter instance
 
uint64_t value
 Current value of the counter.
 
bool resetValue
 Flag keeping track if the counter has been reset.
 
PMUpmu
 

Additional Inherited Members

- Static Public Member Functions inherited from gem5::Serializable
static const std::string & currentSection ()
 Gets the fully-qualified name of the active section.
 
static void generateCheckpointOut (const std::string &cpt_dir, std::ofstream &outstream)
 Generate a checkpoint file so that the serialization can be routed to it.
 

Detailed Description

State of a counter within the PMU.

Definition at line 414 of file pmu.hh.

Constructor & Destructor Documentation

◆ CounterState()

gem5::ArmISA::PMU::CounterState::CounterState ( PMU & pmuReference,
uint64_t counter_id,
const bool is_64_bit )
inline

Definition at line 416 of file pmu.hh.

Member Function Documentation

◆ add()

uint64_t gem5::ArmISA::PMU::CounterState::add ( uint64_t delta)

Add an event count to the counter and check for overflow.

Parameters
deltaNumber of events to add to the counter.
Returns
the quantity remaining until a counter overflow occurs.

Definition at line 786 of file pmu.cc.

References gem5::ArmISA::PMU::isFiltered().

◆ attach()

void gem5::ArmISA::PMU::CounterState::attach ( const std::shared_ptr< PMUEvent > & event)

Attach this counter to an event.

Parameters
theevent to attach the counter to

Definition at line 547 of file pmu.cc.

References gem5::MipsISA::event.

Referenced by gem5::ArmISA::PMU::regProbeListeners(), and gem5::ArmISA::PMU::updateCounter().

◆ debugCounter()

template<typename ... Args>
void gem5::ArmISA::PMU::CounterState::debugCounter ( const char * mainString,
Args &... args ) const
inlineprotected

Definition at line 500 of file pmu.hh.

References counterId, gem5::csprintf(), eventId, sourceEvent, and warn.

◆ detach()

void gem5::ArmISA::PMU::CounterState::detach ( )

Detach the counter from its event.

Definition at line 535 of file pmu.cc.

Referenced by gem5::ArmISA::PMU::updateCounter().

◆ getCounterId()

uint64_t gem5::ArmISA::PMU::CounterState::getCounterId ( ) const
inline

Obtain the counter id.

Returns
the pysical counter id

Definition at line 453 of file pmu.hh.

References counterId.

Referenced by gem5::ArmISA::PMU::updateCounter().

◆ getValue()

uint64_t gem5::ArmISA::PMU::CounterState::getValue ( ) const

rReturn the counter value

Returns
the counter value

Definition at line 558 of file pmu.cc.

Referenced by gem5::ArmISA::PMU::getCounterValue(), and gem5::ArmISA::PMU::readMiscRegInt().

◆ isFiltered()

bool gem5::ArmISA::PMU::CounterState::isFiltered ( ) const

◆ serialize()

void gem5::ArmISA::PMU::CounterState::serialize ( CheckpointOut & cp) const
overridevirtual

Serialize an object.

Output an object's state into the current checkpoint section.

Parameters
cpCheckpoint state

Implements gem5::Serializable.

Definition at line 770 of file pmu.cc.

References SERIALIZE_SCALAR.

◆ setValue()

void gem5::ArmISA::PMU::CounterState::setValue ( uint64_t val)

overwrite the value of the counter

Parameters
thenew counter value

Definition at line 570 of file pmu.cc.

References gem5::X86ISA::val.

Referenced by gem5::ArmISA::PMU::setControlReg(), gem5::ArmISA::PMU::setCounterValue(), and gem5::ArmISA::PMU::setMiscReg().

◆ unserialize()

void gem5::ArmISA::PMU::CounterState::unserialize ( CheckpointIn & cp)
overridevirtual

Unserialize an object.

Read an object's state from the current checkpoint section.

Parameters
cpCheckpoint state

Implements gem5::Serializable.

Definition at line 778 of file pmu.cc.

References UNSERIALIZE_SCALAR.

Member Data Documentation

◆ counterId

uint64_t gem5::ArmISA::PMU::CounterState::counterId
protected

id of the counter instance

Definition at line 489 of file pmu.hh.

Referenced by debugCounter(), and getCounterId().

◆ enabled

bool gem5::ArmISA::PMU::CounterState::enabled

◆ eventId

EventTypeId gem5::ArmISA::PMU::CounterState::eventId

◆ filter

PMEVTYPER_t gem5::ArmISA::PMU::CounterState::filter

Filtering settings (evtCount is unused)

Definition at line 476 of file pmu.hh.

Referenced by gem5::ArmISA::PMU::getCounterTypeRegister(), and gem5::ArmISA::PMU::setCounterTypeRegister().

◆ overflow64

bool gem5::ArmISA::PMU::CounterState::overflow64

Is this a 64-bit counter?

Definition at line 482 of file pmu.hh.

◆ pmu

PMU& gem5::ArmISA::PMU::CounterState::pmu
protected

Definition at line 497 of file pmu.hh.

◆ resetValue

bool gem5::ArmISA::PMU::CounterState::resetValue
protected

Flag keeping track if the counter has been reset.

Definition at line 495 of file pmu.hh.

◆ sourceEvent

std::shared_ptr<PMUEvent> gem5::ArmISA::PMU::CounterState::sourceEvent
protected

PmuEvent currently in use (if any)

Definition at line 486 of file pmu.hh.

Referenced by debugCounter().

◆ value

uint64_t gem5::ArmISA::PMU::CounterState::value
protected

Current value of the counter.

Definition at line 492 of file pmu.hh.


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

Generated on Tue Jun 18 2024 16:24:17 for gem5 by doxygen 1.11.0