gem5  v22.1.0.0
Classes | Public Member Functions | Public Attributes | Private Member Functions | List of all members
gem5::GenericTimer::CoreTimers Class Reference

#include <generic_timer.hh>

Inheritance diagram for gem5::GenericTimer::CoreTimers:
gem5::SystemCounterListener gem5::Serializable

Classes

struct  EventStream
 

Public Member Functions

 CoreTimers (GenericTimer &_parent, ArmSystem &system, unsigned cpu, ArmInterruptPin *irq_el3_phys, ArmInterruptPin *irq_el1_phys, ArmInterruptPin *irq_el1_virt, ArmInterruptPin *irq_el2_ns_phys, ArmInterruptPin *irq_el2_ns_virt, ArmInterruptPin *irq_el2_s_phys, ArmInterruptPin *irq_el2_s_virt)
 
void physEventStreamCallback ()
 
void virtEventStreamCallback ()
 
void eventStreamCallback () const
 
void schedNextEvent (EventStream &ev_stream, ArchTimer &timer)
 
void notify (void) override
 Called from the SystemCounter when a change in counting speed occurred Events should be rescheduled properly inside this member function. More...
 
void serialize (CheckpointOut &cp) const override
 Serialize an object. More...
 
void unserialize (CheckpointIn &cp) override
 Unserialize an object. More...
 
- 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. More...
 
void serializeSection (CheckpointOut &cp, const std::string &name) const
 
void unserializeSection (CheckpointIn &cp, const char *name)
 Unserialize an a child object. More...
 
void unserializeSection (CheckpointIn &cp, const std::string &name)
 

Public Attributes

GenericTimerparent
 Generic Timer parent reference. More...
 
uint32_t cntfrq
 System counter frequency as visible from this core. More...
 
ArmISA::CNTKCTL cntkctl
 Kernel control register. More...
 
ArmISA::CNTHCTL cnthctl
 Hypervisor control register. More...
 
ThreadContextthreadContext
 Thread (HW) context associated to this PE implementation. More...
 
ArmInterruptPin const * irqPhysEL3
 
ArmInterruptPin const * irqPhysEL1
 
ArmInterruptPin const * irqVirtEL1
 
ArmInterruptPin const * irqPhysNsEL2
 
ArmInterruptPin const * irqVirtNsEL2
 
ArmInterruptPin const * irqPhysSEL2
 
ArmInterruptPin const * irqVirtSEL2
 
ArchTimerKvm physEL3
 
ArchTimerKvm physEL1
 
ArchTimerKvm virtEL1
 
ArchTimerKvm physNsEL2
 
ArchTimerKvm virtNsEL2
 
ArchTimerKvm physSEL2
 
ArchTimerKvm virtSEL2
 
EventStream physEvStream
 
EventStream virtEvStream
 

Private Member Functions

 CoreTimers (const CoreTimers &c)
 

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. More...
 
static void generateCheckpointOut (const std::string &cpt_dir, std::ofstream &outstream)
 Generate a checkpoint file so that the serialization can be routed to it. More...
 

Detailed Description

Definition at line 301 of file generic_timer.hh.

Constructor & Destructor Documentation

◆ CoreTimers() [1/2]

gem5::GenericTimer::CoreTimers::CoreTimers ( GenericTimer _parent,
ArmSystem system,
unsigned  cpu,
ArmInterruptPin irq_el3_phys,
ArmInterruptPin irq_el1_phys,
ArmInterruptPin irq_el1_virt,
ArmInterruptPin irq_el2_ns_phys,
ArmInterruptPin irq_el2_ns_virt,
ArmInterruptPin irq_el2_s_phys,
ArmInterruptPin irq_el2_s_virt 
)

Definition at line 810 of file generic_timer.cc.

References physEventStreamCallback().

◆ CoreTimers() [2/2]

gem5::GenericTimer::CoreTimers::CoreTimers ( const CoreTimers c)
private

Member Function Documentation

◆ eventStreamCallback()

void gem5::GenericTimer::CoreTimers::eventStreamCallback ( ) const

Definition at line 874 of file generic_timer.cc.

References gem5::ArmISA::sendEvent().

Referenced by physEventStreamCallback().

◆ notify()

void gem5::GenericTimer::CoreTimers::notify ( void  )
overridevirtual

Called from the SystemCounter when a change in counting speed occurred Events should be rescheduled properly inside this member function.

Implements gem5::SystemCounterListener.

Definition at line 889 of file generic_timer.cc.

◆ physEventStreamCallback()

void gem5::GenericTimer::CoreTimers::physEventStreamCallback ( )

Definition at line 860 of file generic_timer.cc.

References eventStreamCallback(), physEL1, physEvStream, and schedNextEvent().

Referenced by CoreTimers().

◆ schedNextEvent()

void gem5::GenericTimer::CoreTimers::schedNextEvent ( EventStream ev_stream,
ArchTimer timer 
)

◆ serialize()

void gem5::GenericTimer::CoreTimers::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 896 of file generic_timer.cc.

References SERIALIZE_SCALAR.

◆ unserialize()

void gem5::GenericTimer::CoreTimers::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 930 of file generic_timer.cc.

References UNSERIALIZE_SCALAR.

◆ virtEventStreamCallback()

void gem5::GenericTimer::CoreTimers::virtEventStreamCallback ( )

Definition at line 867 of file generic_timer.cc.

Member Data Documentation

◆ cntfrq

uint32_t gem5::GenericTimer::CoreTimers::cntfrq

System counter frequency as visible from this core.

Definition at line 317 of file generic_timer.hh.

Referenced by gem5::GenericTimer::readMiscReg(), and gem5::GenericTimer::setMiscReg().

◆ cnthctl

ArmISA::CNTHCTL gem5::GenericTimer::CoreTimers::cnthctl

Hypervisor control register.

Definition at line 323 of file generic_timer.hh.

Referenced by gem5::GenericTimer::readMiscReg(), and gem5::GenericTimer::setMiscReg().

◆ cntkctl

ArmISA::CNTKCTL gem5::GenericTimer::CoreTimers::cntkctl

Kernel control register.

Definition at line 320 of file generic_timer.hh.

Referenced by gem5::GenericTimer::readMiscReg(), and gem5::GenericTimer::setMiscReg().

◆ irqPhysEL1

ArmInterruptPin const* gem5::GenericTimer::CoreTimers::irqPhysEL1

Definition at line 329 of file generic_timer.hh.

◆ irqPhysEL3

ArmInterruptPin const* gem5::GenericTimer::CoreTimers::irqPhysEL3

Definition at line 328 of file generic_timer.hh.

◆ irqPhysNsEL2

ArmInterruptPin const* gem5::GenericTimer::CoreTimers::irqPhysNsEL2

Definition at line 331 of file generic_timer.hh.

◆ irqPhysSEL2

ArmInterruptPin const* gem5::GenericTimer::CoreTimers::irqPhysSEL2

Definition at line 333 of file generic_timer.hh.

◆ irqVirtEL1

ArmInterruptPin const* gem5::GenericTimer::CoreTimers::irqVirtEL1

Definition at line 330 of file generic_timer.hh.

◆ irqVirtNsEL2

ArmInterruptPin const* gem5::GenericTimer::CoreTimers::irqVirtNsEL2

Definition at line 332 of file generic_timer.hh.

◆ irqVirtSEL2

ArmInterruptPin const* gem5::GenericTimer::CoreTimers::irqVirtSEL2

Definition at line 334 of file generic_timer.hh.

◆ parent

GenericTimer& gem5::GenericTimer::CoreTimers::parent

Generic Timer parent reference.

Definition at line 314 of file generic_timer.hh.

◆ physEL1

ArchTimerKvm gem5::GenericTimer::CoreTimers::physEL1

◆ physEL3

ArchTimerKvm gem5::GenericTimer::CoreTimers::physEL3

◆ physEvStream

EventStream gem5::GenericTimer::CoreTimers::physEvStream

Definition at line 365 of file generic_timer.hh.

Referenced by physEventStreamCallback(), and gem5::GenericTimer::setMiscReg().

◆ physNsEL2

ArchTimerKvm gem5::GenericTimer::CoreTimers::physNsEL2

◆ physSEL2

ArchTimerKvm gem5::GenericTimer::CoreTimers::physSEL2

◆ threadContext

ThreadContext* gem5::GenericTimer::CoreTimers::threadContext

Thread (HW) context associated to this PE implementation.

Definition at line 326 of file generic_timer.hh.

◆ virtEL1

ArchTimerKvm gem5::GenericTimer::CoreTimers::virtEL1

◆ virtEvStream

EventStream gem5::GenericTimer::CoreTimers::virtEvStream

Definition at line 366 of file generic_timer.hh.

Referenced by gem5::GenericTimer::setMiscReg().

◆ virtNsEL2

ArchTimerKvm gem5::GenericTimer::CoreTimers::virtNsEL2

◆ virtSEL2

ArchTimerKvm gem5::GenericTimer::CoreTimers::virtSEL2

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

Generated on Wed Dec 21 2022 10:23:17 for gem5 by doxygen 1.9.1