gem5 v24.0.0.0
Loading...
Searching...
No Matches
gem5::BaseGlobalEventTemplate< Derived > Class Template Reference

Funky intermediate class to support CRTP so that we can have a common constructor to create the local events, even though the types of the local events are defined in the derived classes. More...

#include <global_event.hh>

Inheritance diagram for gem5::BaseGlobalEventTemplate< Derived >:
gem5::BaseGlobalEvent gem5::EventBase

Protected Member Functions

 BaseGlobalEventTemplate (Priority p, Flags f)
 
virtual ~BaseGlobalEventTemplate ()
 

Additional Inherited Members

- Public Types inherited from gem5::EventBase
typedef int8_t Priority
 
- Public Member Functions inherited from gem5::BaseGlobalEvent
 BaseGlobalEvent (Priority p, Flags f)
 
virtual ~BaseGlobalEvent ()
 
virtual void process ()=0
 
virtual const char * description () const =0
 
void schedule (Tick when)
 
bool scheduled () const
 
Tick when () const
 
void deschedule ()
 
void reschedule (Tick when)
 
- Static Public Attributes inherited from gem5::EventBase
static const Priority Minimum_Pri = SCHAR_MIN
 Event priorities, to provide tie-breakers for events scheduled at the same cycle.
 
static const Priority Debug_Enable_Pri = -101
 If we enable tracing on a particular cycle, do that as the very first thing so we don't miss any of the events on that cycle (even if we enter the debugger).
 
static const Priority Debug_Break_Pri = -100
 Breakpoints should happen before anything else (except enabling trace output), so we don't miss any action when debugging.
 
static const Priority CPU_Switch_Pri = -31
 CPU switches schedule the new CPU's tick event for the same cycle (after unscheduling the old CPU's tick event).
 
static const Priority Delayed_Writeback_Pri = -1
 For some reason "delayed" inter-cluster writebacks are scheduled before regular writebacks (which have default priority).
 
static const Priority Default_Pri = 0
 Default is zero for historical reasons.
 
static const Priority DVFS_Update_Pri = 31
 DVFS update event leads to stats dump therefore given a lower priority to ensure all relevant states have been updated.
 
static const Priority Serialize_Pri = 32
 Serailization needs to occur before tick events also, so that a serialize/unserialize is identical to an on-line CPU switch.
 
static const Priority CPU_Tick_Pri = 50
 CPU ticks must come after other associated CPU events (such as writebacks).
 
static const Priority CPU_Exit_Pri = 64
 If we want to exit a thread in a CPU, it comes after CPU_Tick_Pri.
 
static const Priority Stat_Event_Pri = 90
 Statistics events (dump, reset, etc.) come after everything else, but before exit.
 
static const Priority Progress_Event_Pri = 95
 Progress events come at the end.
 
static const Priority Sim_Exit_Pri = 100
 If we want to exit on this cycle, it's the very last thing we do.
 
static const Priority Maximum_Pri = SCHAR_MAX
 Maximum priority.
 
- Protected Types inherited from gem5::EventBase
typedef unsigned short FlagsType
 
typedef ::gem5::Flags< FlagsTypeFlags
 
- Protected Attributes inherited from gem5::BaseGlobalEvent
Barrier barrier
 The barrier that all threads wait on before performing the global event.
 
std::vector< BarrierEvent * > barrierEvent
 The individual local event instances (one per thread/event queue).
 
- Static Protected Attributes inherited from gem5::EventBase
static const FlagsType PublicRead = 0x003f
 
static const FlagsType PublicWrite = 0x001d
 
static const FlagsType Squashed = 0x0001
 
static const FlagsType Scheduled = 0x0002
 
static const FlagsType Managed = 0x0004
 
static const FlagsType AutoDelete = Managed
 
static const FlagsType Reserved0 = 0x0008
 This used to be AutoSerialize.
 
static const FlagsType IsExitEvent = 0x0010
 
static const FlagsType IsMainQueue = 0x0020
 
static const FlagsType Initialized = 0x7a40
 
static const FlagsType InitMask = 0xffc0
 

Detailed Description

template<class Derived>
class gem5::BaseGlobalEventTemplate< Derived >

Funky intermediate class to support CRTP so that we can have a common constructor to create the local events, even though the types of the local events are defined in the derived classes.

Definition at line 156 of file global_event.hh.

Constructor & Destructor Documentation

◆ BaseGlobalEventTemplate()

template<class Derived >
gem5::BaseGlobalEventTemplate< Derived >::BaseGlobalEventTemplate ( Priority p,
Flags f )
inlineprotected

◆ ~BaseGlobalEventTemplate()

template<class Derived >
virtual gem5::BaseGlobalEventTemplate< Derived >::~BaseGlobalEventTemplate ( )
inlineprotectedvirtual

Definition at line 166 of file global_event.hh.


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

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