|
gem5
v21.2.1.1
|
#include <process.hh>
Public Member Functions | |
| virtual ::sc_core::sc_curr_proc_kind | procKind () const =0 |
| bool | needsStart () const |
| void | needsStart (bool ns) |
| bool | dynamic () const |
| bool | isUnwinding () const |
| void | isUnwinding (bool v) |
| bool | terminated () const |
| bool | scheduled () const |
| void | scheduled (bool new_val) |
| void | forEachKid (const std::function< void(Process *)> &work) |
| bool | suspended () const |
| bool | disabled () const |
| void | suspend (bool inc_kids) |
| void | resume (bool inc_kids) |
| void | disable (bool inc_kids) |
| void | enable (bool inc_kids) |
| void | kill (bool inc_kids) |
| void | reset (bool inc_kids) |
| void | throw_it (ExceptionWrapperBase &exc, bool inc_kids) |
| void | injectException (ExceptionWrapperBase &exc) |
| void | syncResetOn (bool inc_kids) |
| void | syncResetOff (bool inc_kids) |
| void | signalReset (bool set, bool sync) |
| void | incref () |
| void | decref () |
| ::sc_core::sc_event & | resetEvent () |
| ::sc_core::sc_event & | terminatedEvent () |
| void | setStackSize (size_t size) |
| void | run () |
| void | addStatic (StaticSensitivity *) |
| void | setDynamic (DynamicSensitivity *) |
| void | clearDynamic () |
| void | addReset (Reset *) |
| void | setTimeout (::sc_core::sc_time t) |
| void | cancelTimeout () |
| void | satisfySensitivity (Sensitivity *) |
| void | ready () |
| virtual gem5::Fiber * | fiber () |
| void | lastReport (::sc_core::sc_report *report) |
| ::sc_core::sc_report * | lastReport () const |
| bool | hasStaticSensitivities () |
| bool | internal () |
| bool | timedOut () |
| bool | inReset () |
| bool | dontInitialize () |
| void | dontInitialize (bool di) |
| void | joinWait (::sc_core::sc_join *join) |
| void | waitCount (int count) |
| const char * | uniqueName (const char *seed) |
Public Member Functions inherited from sc_core::sc_process_b | |
| sc_process_b (const char *name) | |
| sc_process_b () | |
Public Member Functions inherited from sc_core::sc_object | |
| const char * | name () const |
| const char * | basename () const |
| virtual const char * | kind () const |
| virtual void | print (std::ostream &=std::cout) const |
| virtual void | dump (std::ostream &=std::cout) const |
| virtual const std::vector< sc_object * > & | get_child_objects () const |
| virtual const std::vector< sc_event * > & | get_child_events () const |
| sc_object * | get_parent_object () const |
| bool | add_attribute (sc_attr_base &) |
| sc_attr_base * | get_attribute (const std::string &) |
| sc_attr_base * | remove_attribute (const std::string &) |
| void | remove_all_attributes () |
| int | num_attributes () const |
| sc_attr_cltn & | attr_cltn () |
| const sc_attr_cltn & | attr_cltn () const |
| sc_simcontext * | simcontext () const |
Public Member Functions inherited from sc_gem5::ListNode | |
| ListNode () | |
| virtual | ~ListNode () |
| void | popListNode () |
Static Public Member Functions | |
| static Process * | newest () |
Public Attributes | |
| ExceptionWrapperBase * | excWrapper |
| ScEvent | timeoutEvent |
Public Attributes inherited from sc_core::sc_process_b | |
| const char * | file |
| int | lineno |
Public Attributes inherited from sc_gem5::ListNode | |
| ListNode * | nextListNode |
| ListNode * | prevListNode |
Protected Member Functions | |
| void | timeout () |
| Process (const char *name, ProcessFuncWrapper *func, bool internal=false) | |
| virtual | ~Process () |
| void | terminate () |
Protected Member Functions inherited from sc_core::sc_object | |
| sc_object () | |
| sc_object (const char *) | |
| sc_object (const sc_object &) | |
| sc_object & | operator= (const sc_object &) |
| virtual | ~sc_object () |
Protected Attributes | |
| InternalScEvent | _resetEvent |
| InternalScEvent | _terminatedEvent |
| ProcessFuncWrapper * | func |
| bool | _internal |
| bool | _timedOut |
| bool | _dontInitialize |
| bool | _needsStart |
| bool | _dynamic |
| bool | _isUnwinding |
| bool | _terminated |
| bool | _scheduled |
| bool | _suspended |
| bool | _suspendedReady |
| bool | _disabled |
| bool | _syncReset |
| int | syncResetCount |
| int | asyncResetCount |
| int | _waitCount |
| int | refCount |
| size_t | stackSize |
| StaticSensitivities | staticSensitivities |
| DynamicSensitivity * | dynamicSensitivity |
| std::vector< Reset * > | resets |
| std::unique_ptr<::sc_core::sc_report > | _lastReport |
| std::vector<::sc_core::sc_join * > | joinWaiters |
| UniqueNameGen | nameGen |
Static Protected Attributes | |
| static Process * | _newest |
Definition at line 62 of file process.hh.
|
protected |
Definition at line 378 of file process.cc.
References timeout().
|
inlineprotectedvirtual |
Definition at line 149 of file process.hh.
References clearDynamic(), func, sc_gem5::ListNode::popListNode(), gem5::ArmISA::s, and staticSensitivities.
| void sc_gem5::Process::addReset | ( | Reset * | reset | ) |
Definition at line 298 of file process.cc.
References reset(), and resets.
Referenced by sc_gem5::Reset::install().
| void sc_gem5::Process::addStatic | ( | StaticSensitivity * | s | ) |
Definition at line 282 of file process.cc.
References gem5::ArmISA::s, and staticSensitivities.
| void sc_gem5::Process::cancelTimeout | ( | ) |
Definition at line 304 of file process.cc.
References sc_gem5::Scheduler::deschedule(), sc_gem5::ScEvent::scheduled(), sc_gem5::scheduler, and timeoutEvent.
Referenced by satisfySensitivity(), setTimeout(), signalReset(), and terminate().
|
inline |
Definition at line 110 of file process.hh.
References setDynamic().
Referenced by signalReset(), terminate(), and ~Process().
|
inline |
Definition at line 99 of file process.hh.
References refCount.
Referenced by sc_core::sc_process_handle::operator=(), and sc_core::sc_process_handle::~sc_process_handle().
| void sc_gem5::Process::disable | ( | bool | inc_kids | ) |
Definition at line 112 of file process.cc.
References _disabled, _terminated, forEachKid(), sc_core::sc_object::name(), gem5::MipsISA::p, sc_core::sc_allow_process_control_corners, sc_core::SC_ID_PROCESS_CONTROL_CORNER_CASE_, SC_REPORT_ERROR, sc_gem5::ScEvent::scheduled(), and timeoutEvent.
Referenced by sc_core::sc_process_handle::disable().
|
inline |
Definition at line 79 of file process.hh.
References _disabled.
Referenced by sc_gem5::Sensitivity::notify(), ready(), and timeout().
|
inline |
Definition at line 133 of file process.hh.
References _dontInitialize.
Referenced by sc_gem5::ClockTick::createProcess(), and sc_gem5::spawnWork().
|
inline |
Definition at line 134 of file process.hh.
References _dontInitialize.
|
inline |
Definition at line 68 of file process.hh.
References _dynamic.
Referenced by sc_core::sc_process_handle::dynamic().
| void sc_gem5::Process::enable | ( | bool | inc_kids | ) |
Definition at line 130 of file process.cc.
References _disabled, _terminated, forEachKid(), and gem5::MipsISA::p.
Referenced by sc_core::sc_process_handle::enable().
|
inlinevirtual |
Reimplemented in sc_gem5::Thread.
Definition at line 121 of file process.hh.
References gem5::Fiber::primaryFiber().
Referenced by sc_gem5::Scheduler::yield().
| void sc_gem5::Process::forEachKid | ( | const std::function< void(Process *)> & | work | ) |
Definition at line 67 of file process.cc.
References sc_core::sc_object::get_child_objects().
Referenced by disable(), enable(), kill(), reset(), resume(), suspend(), syncResetOff(), syncResetOn(), and throw_it().
|
inline |
Definition at line 128 of file process.hh.
References staticSensitivities.
|
inline |
Definition at line 98 of file process.hh.
References refCount.
Referenced by sc_core::sc_process_handle::operator=(), and sc_core::sc_process_handle::sc_process_handle().
| void sc_gem5::Process::injectException | ( | ExceptionWrapperBase & | exc | ) |
Definition at line 216 of file process.cc.
References excWrapper, sc_gem5::Scheduler::runNow(), and sc_gem5::scheduler.
Referenced by kill(), reset(), and throw_it().
|
inline |
Definition at line 131 of file process.hh.
References _syncReset, asyncResetCount, and syncResetCount.
Referenced by sc_gem5::Scheduler::yield().
|
inline |
Definition at line 129 of file process.hh.
References _internal.
|
inline |
Definition at line 69 of file process.hh.
References _isUnwinding.
Referenced by sc_core::sc_report_handler::default_handler(), and sc_core::sc_process_handle::is_unwinding().
|
inline |
Definition at line 70 of file process.hh.
References _isUnwinding, and gem5::ArmISA::v.
|
inline |
Definition at line 136 of file process.hh.
References joinWaiters.
| void sc_gem5::Process::kill | ( | bool | inc_kids | ) |
Definition at line 141 of file process.cc.
References _isUnwinding, _needsStart, _terminated, forEachKid(), injectException(), sc_gem5::killException, sc_core::sc_object::name(), gem5::MipsISA::p, sc_gem5::ListNode::popListNode(), sc_core::sc_get_status(), sc_core::SC_ID_KILL_PROCESS_WHILE_UNITIALIZED_, SC_REPORT_ERROR, sc_core::SC_RUNNING, and terminate().
Referenced by sc_core::sc_process_handle::kill().
| sc_core::sc_report * sc_gem5::Process::lastReport | ( | ) | const |
Definition at line 376 of file process.cc.
References _lastReport.
| void sc_gem5::Process::lastReport | ( | ::sc_core::sc_report * | report | ) |
Definition at line 366 of file process.cc.
References _lastReport.
Referenced by sc_core::sc_report_handler::clear_cached_report(), sc_core::sc_report_handler::get_cached_report(), and sc_core::sc_report_handler::report().
|
inline |
Definition at line 66 of file process.hh.
References _needsStart.
Referenced by run(), and sc_gem5::Scheduler::yield().
|
inline |
Definition at line 67 of file process.hh.
References _needsStart, and gem5::ArmISA::ns.
|
inlinestatic |
Definition at line 123 of file process.hh.
References _newest.
Referenced by sc_core::sc_module::async_reset_signal_is(), sc_core::sc_module::dont_initialize(), sc_core::sc_module::reset_signal_is(), sc_core::sc_get_current_process_handle(), and sc_core::sc_module::set_stack_size().
|
pure virtual |
Implemented in sc_gem5::CThread, sc_gem5::Thread, and sc_gem5::Method.
Referenced by sc_gem5::Sensitivity::ofMethod(), sc_core::sc_process_handle::proc_kind(), suspend(), and throw_it().
| void sc_gem5::Process::ready | ( | ) |
Definition at line 355 of file process.cc.
References _suspendedReady, disabled(), sc_gem5::Scheduler::ready(), scheduled(), sc_gem5::scheduler, and suspended().
Referenced by satisfySensitivity(), sc_gem5::ClockTick::tick(), and timeout().
| void sc_gem5::Process::reset | ( | bool | inc_kids | ) |
Definition at line 169 of file process.cc.
References _isUnwinding, _needsStart, _resetEvent, _suspendedReady, _terminated, forEachKid(), injectException(), sc_core::sc_object::name(), sc_core::sc_event::notify(), gem5::MipsISA::p, sc_gem5::resetException, sc_gem5::Scheduler::runNow(), sc_core::sc_get_status(), sc_core::SC_ID_RESET_PROCESS_WHILE_NOT_RUNNING_, SC_REPORT_ERROR, sc_core::SC_RUNNING, and sc_gem5::scheduler.
Referenced by addReset(), sc_core::sc_process_handle::reset(), run(), and sc_gem5::Scheduler::yield().
|
inline |
Definition at line 101 of file process.hh.
References _resetEvent.
Referenced by sc_core::sc_process_handle::reset_event(), and sc_gem5::Scheduler::yield().
| void sc_gem5::Process::resume | ( | bool | inc_kids | ) |
Definition at line 98 of file process.cc.
References _suspended, _suspendedReady, _terminated, forEachKid(), gem5::MipsISA::p, sc_gem5::Scheduler::resume(), and sc_gem5::scheduler.
Referenced by sc_core::sc_process_handle::resume().
| void sc_gem5::Process::run | ( | ) |
Definition at line 262 of file process.cc.
References _isUnwinding, sc_gem5::ProcessFuncWrapper::call(), func, sc_core::sc_object::name(), needsStart(), and reset().
Referenced by sc_gem5::Thread::Context::main(), and sc_gem5::Scheduler::yield().
| void sc_gem5::Process::satisfySensitivity | ( | Sensitivity * | s | ) |
Definition at line 332 of file process.cc.
References _timedOut, _waitCount, cancelTimeout(), dynamicSensitivity, ready(), gem5::ArmISA::s, sc_gem5::ScEvent::scheduled(), and timeoutEvent.
Referenced by sc_gem5::Sensitivity::satisfy().
|
inline |
Definition at line 73 of file process.hh.
References _scheduled.
Referenced by ready(), and sc_gem5::Scheduler::yield().
|
inline |
Definition at line 74 of file process.hh.
References _scheduled.
| void sc_gem5::Process::setDynamic | ( | DynamicSensitivity * | s | ) |
Definition at line 288 of file process.cc.
References sc_gem5::Sensitivity::clear(), dynamicSensitivity, and gem5::ArmISA::s.
Referenced by clearDynamic(), and timeout().
|
inline |
Definition at line 104 of file process.hh.
References stackSize.
Referenced by sc_core::sc_module::set_stack_size().
| void sc_gem5::Process::setTimeout | ( | ::sc_core::sc_time | t | ) |
Definition at line 311 of file process.cc.
References cancelTimeout(), sc_gem5::Scheduler::schedule(), sc_gem5::scheduler, gem5::ArmISA::t, and timeoutEvent.
| void sc_gem5::Process::signalReset | ( | bool | set, |
| bool | sync | ||
| ) |
Definition at line 241 of file process.cc.
References asyncResetCount, cancelTimeout(), clearDynamic(), sc_gem5::Scheduler::runNext(), sc_gem5::scheduler, syncResetCount, and waitCount().
Referenced by sc_gem5::Reset::update().
| void sc_gem5::Process::suspend | ( | bool | inc_kids | ) |
Definition at line 77 of file process.cc.
References _suspended, _suspendedReady, _terminated, sc_gem5::Scheduler::current(), forEachKid(), gem5::MipsISA::p, procKind(), sc_core::SC_METHOD_PROC_, sc_gem5::scheduler, sc_gem5::Scheduler::suspend(), and sc_gem5::Scheduler::yield().
Referenced by sc_core::sc_process_handle::suspend().
|
inline |
| void sc_gem5::Process::syncResetOff | ( | bool | inc_kids | ) |
Definition at line 232 of file process.cc.
References _syncReset, forEachKid(), and gem5::MipsISA::p.
Referenced by sc_core::sc_process_handle::sync_reset_off().
| void sc_gem5::Process::syncResetOn | ( | bool | inc_kids | ) |
Definition at line 223 of file process.cc.
References _syncReset, forEachKid(), and gem5::MipsISA::p.
Referenced by sc_core::sc_process_handle::sync_reset_on().
|
protected |
Definition at line 395 of file process.cc.
References _suspended, _suspendedReady, _syncReset, _terminated, _terminatedEvent, cancelTimeout(), clearDynamic(), joinWaiters, sc_core::sc_event::notify(), gem5::ArmISA::s, and staticSensitivities.
Referenced by kill(), and sc_gem5::Thread::Context::main().
|
inline |
Definition at line 71 of file process.hh.
References _terminated.
Referenced by sc_core::sc_process_handle::terminated().
|
inline |
Definition at line 102 of file process.hh.
References _terminatedEvent.
Referenced by sc_core::sc_process_handle::terminated_event().
| void sc_gem5::Process::throw_it | ( | ExceptionWrapperBase & | exc, |
| bool | inc_kids | ||
| ) |
Definition at line 198 of file process.cc.
References _needsStart, _terminated, forEachKid(), injectException(), sc_core::sc_object::name(), gem5::MipsISA::p, procKind(), sc_core::sc_get_status(), sc_core::SC_ID_THROW_IT_IGNORED_, sc_core::SC_ID_THROW_IT_WHILE_NOT_RUNNING_, sc_core::SC_METHOD_PROC_, SC_REPORT_ERROR, SC_REPORT_WARNING, and sc_core::SC_RUNNING.
|
inline |
Definition at line 130 of file process.hh.
References _timedOut.
|
protected |
Definition at line 318 of file process.cc.
References _timedOut, disabled(), dynamicSensitivity, ready(), and setDynamic().
Referenced by Process().
|
inline |
Definition at line 140 of file process.hh.
References sc_gem5::UniqueNameGen::gen(), and nameGen.
|
inline |
Definition at line 138 of file process.hh.
References _waitCount, and gem5::X86ISA::count.
Referenced by signalReset().
|
protected |
Definition at line 182 of file process.hh.
Referenced by disable(), disabled(), and enable().
|
protected |
Definition at line 170 of file process.hh.
Referenced by dontInitialize().
|
protected |
Definition at line 173 of file process.hh.
Referenced by dynamic().
|
protected |
Definition at line 165 of file process.hh.
Referenced by internal().
|
protected |
Definition at line 174 of file process.hh.
Referenced by isUnwinding(), kill(), reset(), and run().
|
protected |
Definition at line 199 of file process.hh.
Referenced by lastReport().
|
protected |
Definition at line 172 of file process.hh.
Referenced by kill(), sc_gem5::Thread::Context::main(), needsStart(), reset(), and throw_it().
|
staticprotected |
Definition at line 147 of file process.hh.
Referenced by newest().
|
protected |
Definition at line 160 of file process.hh.
Referenced by reset(), and resetEvent().
|
protected |
Definition at line 176 of file process.hh.
Referenced by scheduled().
|
protected |
Definition at line 180 of file process.hh.
Referenced by resume(), suspend(), suspended(), and terminate().
|
protected |
Definition at line 181 of file process.hh.
Referenced by ready(), reset(), resume(), suspend(), and terminate().
|
protected |
Definition at line 184 of file process.hh.
Referenced by inReset(), syncResetOff(), syncResetOn(), and terminate().
|
protected |
Definition at line 175 of file process.hh.
Referenced by disable(), enable(), kill(), reset(), resume(), suspend(), terminate(), terminated(), and throw_it().
|
protected |
Definition at line 161 of file process.hh.
Referenced by terminate(), and terminatedEvent().
|
protected |
Definition at line 168 of file process.hh.
Referenced by satisfySensitivity(), timedOut(), and timeout().
|
protected |
Definition at line 189 of file process.hh.
Referenced by satisfySensitivity(), and waitCount().
|
protected |
Definition at line 187 of file process.hh.
Referenced by inReset(), and signalReset().
|
protected |
Definition at line 196 of file process.hh.
Referenced by satisfySensitivity(), setDynamic(), and timeout().
| ExceptionWrapperBase* sc_gem5::Process::excWrapper |
Definition at line 91 of file process.hh.
Referenced by injectException(), and sc_gem5::Scheduler::yield().
|
protected |
Definition at line 163 of file process.hh.
Referenced by run(), and ~Process().
|
protected |
Definition at line 201 of file process.hh.
Referenced by joinWait(), and terminate().
|
protected |
Definition at line 203 of file process.hh.
Referenced by uniqueName().
|
protected |
Definition at line 191 of file process.hh.
|
protected |
Definition at line 197 of file process.hh.
Referenced by addReset().
|
protected |
Definition at line 193 of file process.hh.
Referenced by sc_gem5::Thread::fiber(), and setStackSize().
|
protected |
Definition at line 195 of file process.hh.
Referenced by addStatic(), hasStaticSensitivities(), terminate(), and ~Process().
|
protected |
Definition at line 186 of file process.hh.
Referenced by inReset(), and signalReset().
| ScEvent sc_gem5::Process::timeoutEvent |
Definition at line 113 of file process.hh.
Referenced by cancelTimeout(), disable(), satisfySensitivity(), and setTimeout().