gem5  [DEVELOP-FOR-23.0]
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
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...
 
const ArmInterruptPinirqPhysEL3
 
const ArmInterruptPinirqPhysEL1
 
const ArmInterruptPinirqVirtEL1
 
const ArmInterruptPinirqPhysNsEL2
 
const ArmInterruptPinirqVirtNsEL2
 
const ArmInterruptPinirqPhysSEL2
 
const ArmInterruptPinirqVirtSEL2
 
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 
)

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

◆ 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.

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

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

Definition at line 329 of file generic_timer.hh.

◆ irqPhysEL3

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

Definition at line 328 of file generic_timer.hh.

◆ irqPhysNsEL2

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

Definition at line 331 of file generic_timer.hh.

◆ irqPhysSEL2

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

Definition at line 333 of file generic_timer.hh.

◆ irqVirtEL1

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

Definition at line 330 of file generic_timer.hh.

◆ irqVirtNsEL2

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

Definition at line 332 of file generic_timer.hh.

◆ irqVirtSEL2

const ArmInterruptPin* 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.

Referenced by CoreTimers().

◆ 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 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 Sun Jul 30 2023 01:57:11 for gem5 by doxygen 1.8.17