gem5
v20.1.0.0
|
#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 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(), ArmISA::s, and staticSensitivities.
void Process::addReset | ( | Reset * | reset | ) |
Definition at line 298 of file process.cc.
References reset(), and resets.
Referenced by sc_gem5::Reset::install().
void Process::addStatic | ( | StaticSensitivity * | s | ) |
Definition at line 282 of file process.cc.
References ArmISA::s, and staticSensitivities.
void 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 Process::disable | ( | bool | inc_kids | ) |
Definition at line 112 of file process.cc.
References _disabled, _terminated, forEachKid(), sc_core::sc_object::name(), 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 Process::enable | ( | bool | inc_kids | ) |
Definition at line 130 of file process.cc.
References _disabled, _terminated, forEachKid(), and 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 Fiber::primaryFiber().
Referenced by sc_gem5::Scheduler::yield().
void 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 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 ArmISA::v.
|
inline |
Definition at line 136 of file process.hh.
References joinWaiters.
void 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(), 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 * Process::lastReport | ( | ) | const |
Definition at line 376 of file process.cc.
References _lastReport.
void 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 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 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 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(), 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 Process::resume | ( | bool | inc_kids | ) |
Definition at line 98 of file process.cc.
References _suspended, _suspendedReady, _terminated, forEachKid(), MipsISA::p, sc_gem5::Scheduler::resume(), and sc_gem5::scheduler.
Referenced by sc_core::sc_process_handle::resume().
void 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 Process::satisfySensitivity | ( | Sensitivity * | s | ) |
Definition at line 332 of file process.cc.
References _timedOut, _waitCount, cancelTimeout(), dynamicSensitivity, ready(), 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 Process::setDynamic | ( | DynamicSensitivity * | s | ) |
Definition at line 288 of file process.cc.
References sc_gem5::Sensitivity::clear(), dynamicSensitivity, and 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 Process::setTimeout | ( | ::sc_core::sc_time | t | ) |
Definition at line 311 of file process.cc.
References cancelTimeout(), sc_gem5::Scheduler::schedule(), sc_gem5::scheduler, ArmISA::t, and timeoutEvent.
void 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 Process::suspend | ( | bool | inc_kids | ) |
Definition at line 77 of file process.cc.
References _suspended, _suspendedReady, _terminated, sc_gem5::Scheduler::current(), forEachKid(), 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 Process::syncResetOff | ( | bool | inc_kids | ) |
Definition at line 232 of file process.cc.
References _syncReset, forEachKid(), and MipsISA::p.
Referenced by sc_core::sc_process_handle::sync_reset_off().
void Process::syncResetOn | ( | bool | inc_kids | ) |
Definition at line 223 of file process.cc.
References _syncReset, forEachKid(), and 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(), 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 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(), 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 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().