gem5  v21.2.1.1
Classes | Public Member Functions | Private Attributes | Friends | List of all members
sc_gem5::Thread Class Reference

#include <process_types.hh>

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

Classes

class  Context
 

Public Member Functions

 Thread (const char *name, ProcessFuncWrapper *func, bool internal=false)
 
 ~Thread ()
 
const char * kind () const override
 
sc_core::sc_curr_proc_kind procKind () const override
 
gem5::Fiberfiber () override
 
- Public Member Functions inherited from sc_gem5::Process
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 ()
 
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 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 ()
 

Private Attributes

Contextctx
 

Friends

class Context
 

Additional Inherited Members

- Static Public Member Functions inherited from sc_gem5::Process
static Processnewest ()
 
- Public Attributes inherited from sc_gem5::Process
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 inherited from sc_gem5::Process
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 inherited from sc_gem5::Process
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 inherited from sc_gem5::Process
static Process_newest
 

Detailed Description

Definition at line 53 of file process_types.hh.

Constructor & Destructor Documentation

◆ Thread()

sc_gem5::Thread::Thread ( const char *  name,
ProcessFuncWrapper func,
bool  internal = false 
)
inline

Definition at line 56 of file process_types.hh.

◆ ~Thread()

sc_gem5::Thread::~Thread ( )
inline

Definition at line 60 of file process_types.hh.

References ctx.

Member Function Documentation

◆ fiber()

gem5::Fiber* sc_gem5::Thread::fiber ( )
inlineoverridevirtual

Reimplemented from sc_gem5::Process.

Definition at line 71 of file process_types.hh.

References Context, ctx, and sc_gem5::Process::stackSize.

◆ kind()

const char* sc_gem5::Thread::kind ( ) const
inlineoverridevirtual

Reimplemented from sc_core::sc_object.

Reimplemented in sc_gem5::CThread.

Definition at line 62 of file process_types.hh.

◆ procKind()

sc_core::sc_curr_proc_kind sc_gem5::Thread::procKind ( ) const
inlineoverridevirtual

Implements sc_gem5::Process.

Reimplemented in sc_gem5::CThread.

Definition at line 65 of file process_types.hh.

References sc_core::SC_THREAD_PROC_.

Friends And Related Function Documentation

◆ Context

friend class Context
friend

Definition at line 104 of file process_types.hh.

Referenced by fiber().

Member Data Documentation

◆ ctx

Context* sc_gem5::Thread::ctx
private

Definition at line 106 of file process_types.hh.

Referenced by fiber(), and ~Thread().


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

Generated on Wed May 4 2022 12:16:41 for gem5 by doxygen 1.8.17