|
gem5 [DEVELOP-FOR-25.0]
|
#include <sim_events.hh>
Public Member Functions | |
| GlobalSimLoopExitEvent (Tick when, const std::string &_cause, int c, Tick repeat=0, uint64_t hypercall_id=0, std::map< std::string, std::string > payload=std::map< std::string, std::string >()) | |
| The "old style" constructor for GlobalSimLoopExitEvent. | |
| GlobalSimLoopExitEvent (const std::string &_cause, int c, Tick repeat=0, uint64_t hypercall_id=0, std::map< std::string, std::string > payload=std::map< std::string, std::string >()) | |
| GlobalSimLoopExitEvent (Tick when, uint64_t hypercall_id, std::map< std::string, std::string > payload=std::map< std::string, std::string >()) | |
| The "new style" constructor for GlobalSimLoopExitEvent. | |
| GlobalSimLoopExitEvent (uint64_t hypercall_id, std::map< std::string, std::string > payload=std::map< std::string, std::string >()) | |
| const std::string | getCause () const |
| int | getCode () const |
| uint64_t | getHypercallId () const |
| const std::map< std::string, std::string > | getPayload () const |
| virtual void | process () |
| virtual void | clean () |
| ~GlobalSimLoopExitEvent () | |
| virtual const char * | description () const |
Public Member Functions inherited from gem5::GlobalEvent | |
| GlobalEvent (Priority p, Flags f) | |
| GlobalEvent (Tick when, Priority p, Flags f) | |
Public Member Functions inherited from gem5::BaseGlobalEvent | |
| BaseGlobalEvent (Priority p, Flags f) | |
| virtual | ~BaseGlobalEvent () |
| void | schedule (Tick when) |
| bool | scheduled () const |
| Tick | when () const |
| void | deschedule () |
| void | reschedule (Tick when) |
Protected Attributes | |
| std::string | cause |
| int | code |
| Tick | repeat |
| uint64_t | hypercall_id = 0 |
| std::map< std::string, std::string > | payload |
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). | |
Additional Inherited Members | |
Public Types inherited from gem5::GlobalEvent | |
| typedef BaseGlobalEventTemplate< GlobalEvent > | Base |
Public Types inherited from gem5::EventBase | |
| typedef int8_t | Priority |
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< FlagsType > | Flags |
Protected Member Functions inherited from gem5::BaseGlobalEventTemplate< GlobalEvent > | |
| BaseGlobalEventTemplate (Priority p, Flags f) | |
| virtual | ~BaseGlobalEventTemplate () |
| BaseGlobalEventTemplate (Priority p, Flags f) | |
| virtual | ~BaseGlobalEventTemplate () |
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 |
Definition at line 55 of file sim_events.hh.
| gem5::GlobalSimLoopExitEvent::GlobalSimLoopExitEvent | ( | Tick | when, |
| const std::string & | _cause, | ||
| int | c, | ||
| Tick | repeat = 0, | ||
| uint64_t | hypercall_id = 0, | ||
| std::map< std::string, std::string > | payload = std::map<std::string, std::string>() ) |
The "old style" constructor for GlobalSimLoopExitEvent.
Not the type_id parameter is set to 0. Zero is reserved for the "old
style" exitSimLoop handling via generators in the Simulator module. The payload is unused.
Definition at line 55 of file sim_events.cc.
References gem5::ArmISA::c, cause, code, gem5::GlobalEvent::GlobalEvent(), hypercall_id, gem5::EventBase::IsExitEvent, payload, gem5::MipsISA::r, repeat, gem5::EventBase::Sim_Exit_Pri, and gem5::BaseGlobalEvent::when().
Referenced by GlobalSimLoopExitEvent(), GlobalSimLoopExitEvent(), and gem5::MonitorCallEvent::MonitorCallEvent().
| gem5::GlobalSimLoopExitEvent::GlobalSimLoopExitEvent | ( | const std::string & | _cause, |
| int | c, | ||
| Tick | repeat = 0, | ||
| uint64_t | hypercall_id = 0, | ||
| std::map< std::string, std::string > | payload = std::map<std::string, std::string>() ) |
Definition at line 66 of file sim_events.cc.
References gem5::ArmISA::c, cause, code, gem5::curTick(), gem5::GlobalEvent::GlobalEvent(), hypercall_id, gem5::EventBase::IsExitEvent, gem5::EventBase::Minimum_Pri, payload, gem5::MipsISA::r, and repeat.
| gem5::GlobalSimLoopExitEvent::GlobalSimLoopExitEvent | ( | Tick | when, |
| uint64_t | hypercall_id, | ||
| std::map< std::string, std::string > | payload = std::map<std::string, std::string>() ) |
The "new style" constructor for GlobalSimLoopExitEvent.
Here the "type_id" parameter is used to specify the type of the exit and the payload is used to pass additional information about the exit.
These are used to construct Exit Handlers on the Python side.
Definition at line 76 of file sim_events.cc.
References GlobalSimLoopExitEvent(), hypercall_id, payload, and gem5::BaseGlobalEvent::when().
| gem5::GlobalSimLoopExitEvent::GlobalSimLoopExitEvent | ( | uint64_t | hypercall_id, |
| std::map< std::string, std::string > | payload = std::map<std::string, std::string>() ) |
Definition at line 82 of file sim_events.cc.
References GlobalSimLoopExitEvent(), hypercall_id, and payload.
|
inline |
Definition at line 108 of file sim_events.hh.
References DPRINTF.
|
inlinevirtual |
Reimplemented in gem5::MonitorCallEvent.
Definition at line 107 of file sim_events.hh.
|
virtual |
Implements gem5::BaseGlobalEvent.
Definition at line 90 of file sim_events.cc.
|
inline |
Definition at line 98 of file sim_events.hh.
References cause.
Referenced by gem5::pybind_init_event().
|
inline |
Definition at line 99 of file sim_events.hh.
References code.
Referenced by gem5::pybind_init_event().
|
inline |
Definition at line 101 of file sim_events.hh.
References hypercall_id.
Referenced by gem5::pybind_init_event().
|
inline |
Definition at line 102 of file sim_events.hh.
References payload.
Referenced by gem5::pybind_init_event().
|
virtual |
Implements gem5::GlobalEvent.
Reimplemented in gem5::MonitorCallEvent.
Definition at line 99 of file sim_events.cc.
References gem5::curTick(), repeat, and gem5::BaseGlobalEvent::schedule().
Referenced by gem5::MonitorCallEvent::process().
|
protected |
Definition at line 59 of file sim_events.hh.
Referenced by getCause(), GlobalSimLoopExitEvent(), and GlobalSimLoopExitEvent().
|
protected |
Definition at line 60 of file sim_events.hh.
Referenced by getCode(), GlobalSimLoopExitEvent(), GlobalSimLoopExitEvent(), and gem5::MonitorCallEvent::MonitorCallEvent().
|
protected |
Definition at line 62 of file sim_events.hh.
Referenced by getHypercallId(), GlobalSimLoopExitEvent(), GlobalSimLoopExitEvent(), GlobalSimLoopExitEvent(), and GlobalSimLoopExitEvent().
|
protected |
Definition at line 63 of file sim_events.hh.
Referenced by getPayload(), GlobalSimLoopExitEvent(), GlobalSimLoopExitEvent(), GlobalSimLoopExitEvent(), and GlobalSimLoopExitEvent().
|
protected |
Definition at line 61 of file sim_events.hh.
Referenced by GlobalSimLoopExitEvent(), GlobalSimLoopExitEvent(), and process().