gem5  v20.0.0.2
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
Public Member Functions | Static Public Member Functions | Public Attributes | Protected Member Functions | Protected Attributes | Static Protected Attributes | List of all members
sc_gem5::Process Class Referenceabstract

#include <process.hh>

Inheritance diagram for sc_gem5::Process:
sc_core::sc_process_b sc_gem5::ListNode sc_core::sc_object sc_gem5::Method sc_gem5::Thread sc_gem5::CThread

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_eventresetEvent ()
 
::sc_core::sc_eventterminatedEvent ()
 
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 Fiberfiber ()
 
void lastReport (::sc_core::sc_report *report)
 
::sc_core::sc_reportlastReport () 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_objectget_parent_object () const
 
bool add_attribute (sc_attr_base &)
 
sc_attr_baseget_attribute (const std::string &)
 
sc_attr_baseremove_attribute (const std::string &)
 
void remove_all_attributes ()
 
int num_attributes () const
 
sc_attr_cltnattr_cltn ()
 
const sc_attr_cltnattr_cltn () const
 
sc_simcontextsimcontext () const
 
- Public Member Functions inherited from sc_gem5::ListNode
 ListNode ()
 
virtual ~ListNode ()
 
void popListNode ()
 

Static Public Member Functions

static Processnewest ()
 

Public Attributes

ExceptionWrapperBaseexcWrapper
 
ScEvent timeoutEvent
 
- Public Attributes inherited from sc_core::sc_process_b
const char * file
 
int lineno
 
- Public Attributes inherited from sc_gem5::ListNode
ListNodenextListNode
 
ListNodeprevListNode
 

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_objectoperator= (const sc_object &)
 
virtual ~sc_object ()
 

Protected Attributes

InternalScEvent _resetEvent
 
InternalScEvent _terminatedEvent
 
ProcessFuncWrapperfunc
 
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
 
DynamicSensitivitydynamicSensitivity
 
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
 

Detailed Description

Definition at line 62 of file process.hh.

Constructor & Destructor Documentation

◆ Process()

Process::Process ( const char *  name,
ProcessFuncWrapper func,
bool  internal = false 
)
protected

◆ ~Process()

virtual sc_gem5::Process::~Process ( )
inlineprotectedvirtual

Definition at line 149 of file process.hh.

References ArmISA::s.

Member Function Documentation

◆ addReset()

void Process::addReset ( Reset reset)

Definition at line 298 of file process.cc.

◆ addStatic()

void Process::addStatic ( StaticSensitivity s)

◆ cancelTimeout()

void Process::cancelTimeout ( )

◆ clearDynamic()

void sc_gem5::Process::clearDynamic ( )
inline

Definition at line 110 of file process.hh.

Referenced by sc_core::next_trigger(), terminate(), and sc_core::wait().

◆ decref()

void sc_gem5::Process::decref ( )
inline

◆ disable()

void Process::disable ( bool  inc_kids)

◆ disabled()

bool sc_gem5::Process::disabled ( ) const
inline

Definition at line 79 of file process.hh.

References Trace::disable(), X86ISA::enable, and Stats::reset().

Referenced by sc_gem5::Sensitivity::notify().

◆ dontInitialize() [1/2]

bool sc_gem5::Process::dontInitialize ( )
inline

◆ dontInitialize() [2/2]

void sc_gem5::Process::dontInitialize ( bool  di)
inline

Definition at line 134 of file process.hh.

◆ dynamic()

bool sc_gem5::Process::dynamic ( ) const
inline

Definition at line 68 of file process.hh.

Referenced by sc_core::sc_process_handle::dynamic().

◆ enable()

void Process::enable ( bool  inc_kids)

Definition at line 130 of file process.cc.

References enable(), and MipsISA::p.

Referenced by enable(), and sc_core::sc_process_handle::enable().

◆ fiber()

virtual Fiber* sc_gem5::Process::fiber ( )
inlinevirtual

Reimplemented in sc_gem5::Thread.

Definition at line 121 of file process.hh.

References Fiber::primaryFiber().

Referenced by sc_gem5::Scheduler::yield().

◆ forEachKid()

void Process::forEachKid ( const std::function< void(Process *)> &  work)

Definition at line 67 of file process.cc.

◆ hasStaticSensitivities()

bool sc_gem5::Process::hasStaticSensitivities ( )
inline

Definition at line 128 of file process.hh.

◆ incref()

void sc_gem5::Process::incref ( )
inline

◆ injectException()

void Process::injectException ( ExceptionWrapperBase exc)

Definition at line 216 of file process.cc.

References sc_gem5::Scheduler::runNow(), and sc_gem5::scheduler.

◆ inReset()

bool sc_gem5::Process::inReset ( )
inline

Definition at line 131 of file process.hh.

Referenced by sc_gem5::Scheduler::yield().

◆ internal()

bool sc_gem5::Process::internal ( )
inline

Definition at line 129 of file process.hh.

◆ isUnwinding() [1/2]

bool sc_gem5::Process::isUnwinding ( ) const
inline

◆ isUnwinding() [2/2]

void sc_gem5::Process::isUnwinding ( bool  v)
inline

Definition at line 70 of file process.hh.

References ArmISA::v.

◆ joinWait()

void sc_gem5::Process::joinWait ( ::sc_core::sc_join join)
inline

Definition at line 136 of file process.hh.

◆ kill()

void Process::kill ( bool  inc_kids)

◆ lastReport() [1/2]

void Process::lastReport ( ::sc_core::sc_report report)

◆ lastReport() [2/2]

sc_core::sc_report * Process::lastReport ( ) const

Definition at line 376 of file process.cc.

◆ needsStart() [1/2]

bool sc_gem5::Process::needsStart ( ) const
inline

Definition at line 66 of file process.hh.

Referenced by sc_gem5::Scheduler::yield().

◆ needsStart() [2/2]

void sc_gem5::Process::needsStart ( bool  ns)
inline

Definition at line 67 of file process.hh.

References ArmISA::ns.

◆ newest()

static Process* sc_gem5::Process::newest ( )
inlinestatic

◆ procKind()

virtual ::sc_core::sc_curr_proc_kind sc_gem5::Process::procKind ( ) const
pure virtual

◆ ready()

void Process::ready ( )

◆ reset()

void Process::reset ( bool  inc_kids)

◆ resetEvent()

::sc_core::sc_event& sc_gem5::Process::resetEvent ( )
inline

◆ resume()

void Process::resume ( bool  inc_kids)

◆ run()

void Process::run ( )

Definition at line 262 of file process.cc.

References name(), and Stats::reset().

Referenced by sc_gem5::Thread::Context::main(), and sc_gem5::Scheduler::yield().

◆ satisfySensitivity()

void Process::satisfySensitivity ( Sensitivity s)

Definition at line 332 of file process.cc.

Referenced by sc_gem5::Sensitivity::satisfy().

◆ scheduled() [1/2]

bool sc_gem5::Process::scheduled ( ) const
inline

Definition at line 73 of file process.hh.

Referenced by sc_gem5::Scheduler::ready(), and sc_gem5::Scheduler::yield().

◆ scheduled() [2/2]

void sc_gem5::Process::scheduled ( bool  new_val)
inline

Definition at line 74 of file process.hh.

◆ setDynamic()

void Process::setDynamic ( DynamicSensitivity s)

◆ setStackSize()

void sc_gem5::Process::setStackSize ( size_t  size)
inline

Definition at line 104 of file process.hh.

Referenced by sc_core::sc_module::set_stack_size().

◆ setTimeout()

void Process::setTimeout ( ::sc_core::sc_time  t)

Definition at line 311 of file process.cc.

References sc_gem5::Scheduler::schedule(), and sc_gem5::scheduler.

Referenced by sc_core::next_trigger(), and sc_core::wait().

◆ signalReset()

void Process::signalReset ( bool  set,
bool  sync 
)

Definition at line 241 of file process.cc.

References sc_gem5::Scheduler::runNext(), and sc_gem5::scheduler.

◆ suspend()

void Process::suspend ( bool  inc_kids)

◆ suspended()

bool sc_gem5::Process::suspended ( ) const
inline

Definition at line 78 of file process.hh.

◆ syncResetOff()

void Process::syncResetOff ( bool  inc_kids)

Definition at line 232 of file process.cc.

References MipsISA::p, and syncResetOff().

Referenced by sc_core::sc_process_handle::sync_reset_off(), and syncResetOff().

◆ syncResetOn()

void Process::syncResetOn ( bool  inc_kids)

Definition at line 223 of file process.cc.

References MipsISA::p, and syncResetOn().

Referenced by sc_core::sc_process_handle::sync_reset_on(), and syncResetOn().

◆ terminate()

void Process::terminate ( )
protected

◆ terminated()

bool sc_gem5::Process::terminated ( ) const
inline

Definition at line 71 of file process.hh.

Referenced by sc_core::sc_process_handle::terminated().

◆ terminatedEvent()

::sc_core::sc_event& sc_gem5::Process::terminatedEvent ( )
inline

Definition at line 102 of file process.hh.

Referenced by sc_core::sc_process_handle::terminated_event().

◆ throw_it()

void Process::throw_it ( ExceptionWrapperBase exc,
bool  inc_kids 
)

◆ timedOut()

bool sc_gem5::Process::timedOut ( )
inline

Definition at line 130 of file process.hh.

Referenced by sc_core::timed_out().

◆ timeout()

void Process::timeout ( )
protected

Definition at line 318 of file process.cc.

Referenced by Process().

◆ uniqueName()

const char* sc_gem5::Process::uniqueName ( const char *  seed)
inline

Definition at line 140 of file process.hh.

References name().

Referenced by sc_core::sc_gen_unique_name().

◆ waitCount()

void sc_gem5::Process::waitCount ( int  count)
inline

Definition at line 138 of file process.hh.

References X86ISA::count.

Referenced by sc_core::wait().

Member Data Documentation

◆ _disabled

bool sc_gem5::Process::_disabled
protected

Definition at line 182 of file process.hh.

Referenced by Process().

◆ _dontInitialize

bool sc_gem5::Process::_dontInitialize
protected

Definition at line 170 of file process.hh.

Referenced by Process().

◆ _dynamic

bool sc_gem5::Process::_dynamic
protected

Definition at line 173 of file process.hh.

Referenced by Process().

◆ _internal

bool sc_gem5::Process::_internal
protected

Definition at line 165 of file process.hh.

Referenced by Process().

◆ _isUnwinding

bool sc_gem5::Process::_isUnwinding
protected

Definition at line 174 of file process.hh.

Referenced by Process().

◆ _lastReport

std::unique_ptr<::sc_core::sc_report> sc_gem5::Process::_lastReport
protected

Definition at line 199 of file process.hh.

◆ _needsStart

bool sc_gem5::Process::_needsStart
protected

Definition at line 172 of file process.hh.

Referenced by sc_gem5::Thread::Context::main(), and Process().

◆ _newest

Process * Process::_newest
staticprotected

Definition at line 147 of file process.hh.

Referenced by Process(), and terminate().

◆ _resetEvent

InternalScEvent sc_gem5::Process::_resetEvent
protected

Definition at line 160 of file process.hh.

◆ _scheduled

bool sc_gem5::Process::_scheduled
protected

Definition at line 176 of file process.hh.

Referenced by Process().

◆ _suspended

bool sc_gem5::Process::_suspended
protected

Definition at line 180 of file process.hh.

Referenced by Process(), and terminate().

◆ _suspendedReady

bool sc_gem5::Process::_suspendedReady
protected

Definition at line 181 of file process.hh.

Referenced by terminate().

◆ _syncReset

bool sc_gem5::Process::_syncReset
protected

Definition at line 184 of file process.hh.

Referenced by Process(), and terminate().

◆ _terminated

bool sc_gem5::Process::_terminated
protected

Definition at line 175 of file process.hh.

Referenced by Process(), and terminate().

◆ _terminatedEvent

InternalScEvent sc_gem5::Process::_terminatedEvent
protected

Definition at line 161 of file process.hh.

Referenced by terminate().

◆ _timedOut

bool sc_gem5::Process::_timedOut
protected

Definition at line 168 of file process.hh.

Referenced by Process().

◆ _waitCount

int sc_gem5::Process::_waitCount
protected

Definition at line 189 of file process.hh.

Referenced by Process().

◆ asyncResetCount

int sc_gem5::Process::asyncResetCount
protected

Definition at line 187 of file process.hh.

Referenced by Process().

◆ dynamicSensitivity

DynamicSensitivity* sc_gem5::Process::dynamicSensitivity
protected

Definition at line 196 of file process.hh.

Referenced by Process().

◆ excWrapper

ExceptionWrapperBase* sc_gem5::Process::excWrapper

Definition at line 91 of file process.hh.

Referenced by sc_gem5::Scheduler::yield().

◆ func

ProcessFuncWrapper* sc_gem5::Process::func
protected

Definition at line 163 of file process.hh.

Referenced by Process().

◆ joinWaiters

std::vector<::sc_core::sc_join *> sc_gem5::Process::joinWaiters
protected

Definition at line 201 of file process.hh.

Referenced by terminate().

◆ nameGen

UniqueNameGen sc_gem5::Process::nameGen
protected

Definition at line 203 of file process.hh.

◆ refCount

int sc_gem5::Process::refCount
protected

Definition at line 191 of file process.hh.

Referenced by Process().

◆ resets

std::vector<Reset *> sc_gem5::Process::resets
protected

Definition at line 197 of file process.hh.

◆ stackSize

size_t sc_gem5::Process::stackSize
protected

Definition at line 193 of file process.hh.

Referenced by sc_gem5::Thread::fiber(), and Process().

◆ staticSensitivities

StaticSensitivities sc_gem5::Process::staticSensitivities
protected

Definition at line 195 of file process.hh.

Referenced by terminate().

◆ syncResetCount

int sc_gem5::Process::syncResetCount
protected

Definition at line 186 of file process.hh.

Referenced by Process().

◆ timeoutEvent

ScEvent sc_gem5::Process::timeoutEvent

Definition at line 113 of file process.hh.


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

Generated on Mon Jun 8 2020 15:46:02 for gem5 by doxygen 1.8.13