SystemC 3.0.0
Accellera SystemC proof-of-concept library
Public Member Functions | Protected Member Functions | Protected Attributes | Friends | List of all members
sc_core::sc_thread_process Class Reference

#include <sysc/kernel/sc_thread_process.h>

Inheritance diagram for sc_core::sc_thread_process:
Inheritance graph
[legend]
Collaboration diagram for sc_core::sc_thread_process:
Collaboration graph
[legend]

Public Member Functions

 sc_thread_process (const char *name_p, bool free_host, sc_entry_func method_p, sc_process_host *host_p, const sc_spawn_options *opt_p)
 
virtual const char * kind () const
 
- Public Member Functions inherited from sc_core::sc_process_b
 sc_process_b (const char *name_p, bool is_thread, bool free_host, sc_entry_func method_p, sc_process_host *host_p, const sc_spawn_options *opt_p)
 
int current_state ()
 
bool dont_initialize () const
 
virtual void dont_initialize (bool dont)
 
std::string dump_state () const
 
sc_curr_proc_kind proc_kind () const
 
sc_eventreset_event ()
 
sc_eventterminated_event ()
 
- Public Member Functions inherited from sc_core::sc_object_host
virtual const std::vector< sc_event * > & get_child_events () const
 
virtual const std::vector< sc_object * > & get_child_objects () const
 
- Public Member Functions inherited from sc_core::sc_object
const char * name () const
 
const char * basename () const
 
virtual void print (::std::ostream &os=::std::cout) const
 
virtual void dump (::std::ostream &os=::std::cout) const
 
virtual void trace (sc_trace_file *tf) const
 
virtual const char * kind () const
 
sc_simcontextsimcontext () const
 
bool add_attribute (sc_attr_base &)
 
sc_attr_baseget_attribute (const std::string &name_)
 
const sc_attr_baseget_attribute (const std::string &name_) const
 
sc_attr_baseremove_attribute (const std::string &name_)
 
void remove_all_attributes ()
 
int num_attributes () const
 
sc_attr_cltnattr_cltn ()
 
const sc_attr_cltnattr_cltn () const
 
virtual const std::vector< sc_event * > & get_child_events () const
 
virtual const std::vector< sc_object * > & get_child_objects () const
 
sc_objectget_parent () const
 
sc_objectget_parent_object () const
 
virtual ~sc_object ()
 

Protected Member Functions

virtual ~sc_thread_process ()
 
virtual void disable_process (sc_descendant_inclusion_info descendants=SC_NO_DESCENDANTS)
 
virtual void enable_process (sc_descendant_inclusion_info descendants=SC_NO_DESCENDANTS)
 
virtual void kill_process (sc_descendant_inclusion_info descendants=SC_NO_DESCENDANTS)
 
sc_thread_handle next_exist ()
 
sc_thread_handle next_runnable ()
 
virtual void prepare_for_simulation ()
 
virtual void resume_process (sc_descendant_inclusion_info descendants=SC_NO_DESCENDANTS)
 
void set_next_exist (sc_thread_handle next_p)
 
void set_next_runnable (sc_thread_handle next_p)
 
void set_stack_size (std::size_t size)
 
void suspend_me ()
 
virtual void suspend_process (sc_descendant_inclusion_info descendants=SC_NO_DESCENDANTS)
 
virtual void throw_reset (bool async)
 
virtual void throw_user (const sc_throw_it_helper &helper, sc_descendant_inclusion_info descendants=SC_NO_DESCENDANTS)
 
bool trigger_dynamic (sc_event *)
 
void trigger_static ()
 
void wait (const sc_event &)
 
void wait (const sc_event_or_list &)
 
void wait (const sc_event_and_list &)
 
void wait (const sc_time &)
 
void wait (const sc_time &, const sc_event &)
 
void wait (const sc_time &, const sc_event_or_list &)
 
void wait (const sc_time &, const sc_event_and_list &)
 
void wait_cycles (int n=1)
 
void add_monitor (sc_process_monitor *monitor_p)
 
void remove_monitor (sc_process_monitor *monitor_p)
 
void signal_monitors (int type=0)
 
- Protected Member Functions inherited from sc_core::sc_process_b
virtual ~sc_process_b ()
 
virtual void add_child_object (sc_object *)
 
virtual void add_child_event (sc_event *)
 
virtual bool remove_child_object (sc_object *)
 
virtual bool remove_child_event (sc_event *)
 
void add_static_event (const sc_event &)
 
bool dynamic () const
 
sc_reportget_last_report ()
 
bool is_disabled () const
 
bool is_runnable () const
 
void remove_dynamic_events (bool skip_timeout=false)
 
void remove_static_events ()
 
void set_last_report (sc_report *last_p)
 
bool timed_out () const
 
void report_error (const char *msgid, const char *msg="") const
 
void report_immediate_self_notification () const
 
virtual void disable_process (sc_descendant_inclusion_info descendants=SC_NO_DESCENDANTS)=0
 
void disconnect_process ()
 
virtual void enable_process (sc_descendant_inclusion_info descendants=SC_NO_DESCENDANTS)=0
 
void initially_in_reset (bool async)
 
bool is_unwinding () const
 
bool start_unwinding ()
 
bool clear_unwinding ()
 
virtual void kill_process (sc_descendant_inclusion_info descendants=SC_NO_DESCENDANTS)=0
 
void reset_changed (bool async, bool asserted)
 
void reset_process (reset_type rt, sc_descendant_inclusion_info descendants=SC_NO_DESCENDANTS)
 
virtual void resume_process (sc_descendant_inclusion_info descendants=SC_NO_DESCENDANTS)=0
 
virtual void suspend_process (sc_descendant_inclusion_info descendants=SC_NO_DESCENDANTS)=0
 
virtual void throw_user (const sc_throw_it_helper &helper, sc_descendant_inclusion_info descendants=SC_NO_DESCENDANTS)=0
 
virtual void throw_reset (bool async)=0
 
virtual bool terminated () const
 
void trigger_reset_event ()
 
void semantics ()
 
- Protected Member Functions inherited from sc_core::sc_object_host
 sc_object_host ()
 
 sc_object_host (const char *nm)
 
virtual ~sc_object_host ()
 
virtual hierarchy_scope get_hierarchy_scope ()
 
- Protected Member Functions inherited from sc_core::sc_object
 sc_object ()
 
 sc_object (const char *nm)
 
 sc_object (const sc_object &)
 
sc_objectoperator= (const sc_object &)
 
virtual hierarchy_scope get_hierarchy_scope ()
 

Protected Attributes

sc_corm_cor_p
 
std::vector< sc_process_monitor * > m_monitor_q
 
std::size_t m_stack_size
 
int m_wait_cycle_n
 
- Protected Attributes inherited from sc_core::sc_process_b
int m_active_areset_n
 
int m_active_reset_n
 
bool m_dont_init
 
spawn_t m_dynamic_proc
 
const sc_eventm_event_p
 
int m_event_count
 
const sc_event_listm_event_list_p
 
sc_process_bm_exist_p
 
bool m_free_host
 
bool m_has_reset_signal
 
bool m_has_stack
 
bool m_is_thread
 
sc_reportm_last_report_p
 
sc_curr_proc_kind m_process_kind
 
int m_references_n
 
std::vector< sc_reset * > m_resets
 
sc_eventm_reset_event_p
 
sc_eventm_resume_event_p
 
sc_process_bm_runnable_p
 
sc_process_hostm_semantics_host_p
 
sc_entry_func m_semantics_method_p
 
int m_state
 
std::vector< const sc_event * > m_static_events
 
bool m_sticky_reset
 
sc_eventm_term_event_p
 
sc_throw_it_helperm_throw_helper_p
 
process_throw_type m_throw_status
 
bool m_timed_out
 
sc_eventm_timeout_event_p
 
trigger_t m_trigger_type
 
bool m_unwinding
 
bool m_unsuspendable
 
bool m_suspend_all_req
 

Friends

class sc_event
 
class sc_join
 
class sc_module
 
class sc_process_b
 
class sc_process_handle
 
class sc_process_table
 
class sc_simcontext
 
class sc_runnable
 
void sc_thread_cor_fn (void *)
 
void sc_set_stack_size (sc_thread_handle, std::size_t)
 
sc_corget_cor_pointer (sc_process_b *process_p)
 
SC_API void wait (int, sc_simcontext *)
 
SC_API void wait (sc_simcontext *)
 
SC_API void wait (const sc_event &, sc_simcontext *)
 
SC_API void wait (const sc_event_or_list &, sc_simcontext *)
 
SC_API void wait (const sc_event_and_list &, sc_simcontext *)
 
SC_API void wait (const sc_time &, sc_simcontext *)
 
SC_API void wait (const sc_time &, const sc_event &, sc_simcontext *)
 
SC_API void wait (const sc_time &, const sc_event_or_list &, sc_simcontext *)
 
SC_API void wait (const sc_time &, const sc_event_and_list &, sc_simcontext *)
 

Additional Inherited Members

- Public Types inherited from sc_core::sc_process_b
enum  process_throw_type {
  THROW_NONE = 0 , THROW_KILL , THROW_USER , THROW_ASYNC_RESET ,
  THROW_SYNC_RESET
}
 
enum  process_state {
  ps_bit_disabled = 1 , ps_bit_ready_to_run = 2 , ps_bit_suspended = 4 , ps_bit_zombie = 8 ,
  ps_normal = 0
}
 
enum  reset_type { reset_asynchronous = 0 , reset_synchronous_off , reset_synchronous_on }
 
enum  trigger_t {
  STATIC , EVENT , OR_LIST , AND_LIST ,
  TIMEOUT , EVENT_TIMEOUT , OR_LIST_TIMEOUT , AND_LIST_TIMEOUT
}
 
- Static Public Member Functions inherited from sc_core::sc_process_b
static sc_process_handle last_created_process_handle ()
 
- Public Attributes inherited from sc_core::sc_process_b
const char * file
 
int lineno
 
int proc_id
 
- Protected Types inherited from sc_core::sc_process_b
enum  spawn_t { SPAWN_ELAB = 0x0 , SPAWN_START = 0x1 , SPAWN_SIM = 0x2 }
 
- Static Protected Member Functions inherited from sc_core::sc_process_b
static sc_process_blast_created_process_base ()
 
- Static Protected Attributes inherited from sc_core::sc_process_b
static sc_process_bm_last_created_process_p
 

Detailed Description

Definition at line 96 of file sc_thread_process.h.

Constructor & Destructor Documentation

◆ sc_thread_process()

sc_core::sc_thread_process::sc_thread_process ( const char *  name_p,
bool  free_host,
sc_entry_func  method_p,
sc_process_host host_p,
const sc_spawn_options opt_p 
)

◆ ~sc_thread_process()

virtual sc_core::sc_thread_process::~sc_thread_process ( )
protectedvirtual

Member Function Documentation

◆ add_monitor()

void sc_core::sc_thread_process::add_monitor ( sc_process_monitor monitor_p)
inlineprotected

Definition at line 402 of file sc_thread_process.h.

◆ disable_process()

virtual void sc_core::sc_thread_process::disable_process ( sc_descendant_inclusion_info  descendants = SC_NO_DESCENDANTS)
protectedvirtual

Implements sc_core::sc_process_b.

◆ enable_process()

virtual void sc_core::sc_thread_process::enable_process ( sc_descendant_inclusion_info  descendants = SC_NO_DESCENDANTS)
protectedvirtual

Implements sc_core::sc_process_b.

◆ kill_process()

virtual void sc_core::sc_thread_process::kill_process ( sc_descendant_inclusion_info  descendants = SC_NO_DESCENDANTS)
protectedvirtual

Implements sc_core::sc_process_b.

◆ kind()

virtual const char * sc_core::sc_thread_process::kind ( ) const
inlinevirtual

Reimplemented from sc_core::sc_object.

Reimplemented in sc_core::sc_cthread_process.

Definition at line 124 of file sc_thread_process.h.

◆ next_exist()

sc_thread_handle sc_core::sc_thread_process::next_exist ( )
inlineprotected

Definition at line 430 of file sc_thread_process.h.

◆ next_runnable()

sc_thread_handle sc_core::sc_thread_process::next_runnable ( )
inlineprotected

Definition at line 442 of file sc_thread_process.h.

◆ prepare_for_simulation()

virtual void sc_core::sc_thread_process::prepare_for_simulation ( )
protectedvirtual

◆ remove_monitor()

void sc_core::sc_thread_process::remove_monitor ( sc_process_monitor monitor_p)
inlineprotected

Definition at line 409 of file sc_thread_process.h.

◆ resume_process()

virtual void sc_core::sc_thread_process::resume_process ( sc_descendant_inclusion_info  descendants = SC_NO_DESCENDANTS)
protectedvirtual

Implements sc_core::sc_process_b.

◆ set_next_exist()

void sc_core::sc_thread_process::set_next_exist ( sc_thread_handle  next_p)
inlineprotected

Definition at line 424 of file sc_thread_process.h.

◆ set_next_runnable()

void sc_core::sc_thread_process::set_next_runnable ( sc_thread_handle  next_p)
inlineprotected

Definition at line 436 of file sc_thread_process.h.

◆ set_stack_size()

void sc_core::sc_thread_process::set_stack_size ( std::size_t  size)
inlineprotected

Definition at line 186 of file sc_thread_process.h.

◆ signal_monitors()

void sc_core::sc_thread_process::signal_monitors ( int  type = 0)
protected

◆ suspend_me()

void sc_core::sc_thread_process::suspend_me ( )
inlineprotected

Definition at line 211 of file sc_thread_process.h.

◆ suspend_process()

virtual void sc_core::sc_thread_process::suspend_process ( sc_descendant_inclusion_info  descendants = SC_NO_DESCENDANTS)
protectedvirtual

Implements sc_core::sc_process_b.

◆ throw_reset()

virtual void sc_core::sc_thread_process::throw_reset ( bool  async)
protectedvirtual

Implements sc_core::sc_process_b.

◆ throw_user()

virtual void sc_core::sc_thread_process::throw_user ( const sc_throw_it_helper helper,
sc_descendant_inclusion_info  descendants = SC_NO_DESCENDANTS 
)
protectedvirtual

Implements sc_core::sc_process_b.

◆ trigger_dynamic()

bool sc_core::sc_thread_process::trigger_dynamic ( sc_event )
protected

◆ trigger_static()

void sc_core::sc_thread_process::trigger_static ( )
inlineprotected

Definition at line 474 of file sc_thread_process.h.

◆ wait() [1/7]

void sc_core::sc_thread_process::wait ( const sc_event e)
inlineprotected

Definition at line 277 of file sc_thread_process.h.

◆ wait() [2/7]

void sc_core::sc_thread_process::wait ( const sc_event_and_list el)
inlineprotected

Definition at line 303 of file sc_thread_process.h.

◆ wait() [3/7]

void sc_core::sc_thread_process::wait ( const sc_event_or_list el)
inlineprotected

Definition at line 290 of file sc_thread_process.h.

◆ wait() [4/7]

void sc_core::sc_thread_process::wait ( const sc_time t)
inlineprotected

Definition at line 317 of file sc_thread_process.h.

◆ wait() [5/7]

void sc_core::sc_thread_process::wait ( const sc_time t,
const sc_event e 
)
inlineprotected

Definition at line 330 of file sc_thread_process.h.

◆ wait() [6/7]

void sc_core::sc_thread_process::wait ( const sc_time t,
const sc_event_and_list el 
)
inlineprotected

Definition at line 360 of file sc_thread_process.h.

◆ wait() [7/7]

void sc_core::sc_thread_process::wait ( const sc_time t,
const sc_event_or_list el 
)
inlineprotected

Definition at line 345 of file sc_thread_process.h.

◆ wait_cycles()

void sc_core::sc_thread_process::wait_cycles ( int  n = 1)
inlineprotected

Definition at line 385 of file sc_thread_process.h.

Friends And Related Function Documentation

◆ get_cor_pointer

sc_cor * get_cor_pointer ( sc_process_b process_p)
friend

Definition at line 447 of file sc_thread_process.h.

◆ sc_event

friend class sc_event
friend

Definition at line 99 of file sc_thread_process.h.

◆ sc_join

friend class sc_join
friend

Definition at line 100 of file sc_thread_process.h.

◆ sc_module

friend class sc_module
friend

Definition at line 101 of file sc_thread_process.h.

◆ sc_process_b

friend class sc_process_b
friend

Definition at line 102 of file sc_thread_process.h.

◆ sc_process_handle

friend class sc_process_handle
friend

Definition at line 103 of file sc_thread_process.h.

◆ sc_process_table

friend class sc_process_table
friend

Definition at line 104 of file sc_thread_process.h.

◆ sc_runnable

friend class sc_runnable
friend

Definition at line 106 of file sc_thread_process.h.

◆ sc_set_stack_size

void sc_set_stack_size ( sc_thread_handle  ,
std::size_t   
)
friend

◆ sc_simcontext

friend class sc_simcontext
friend

Definition at line 105 of file sc_thread_process.h.

◆ sc_thread_cor_fn

void sc_thread_cor_fn ( void *  )
friend

◆ wait [1/9]

SC_API void wait ( const sc_event ,
sc_simcontext  
)
friend

◆ wait [2/9]

SC_API void wait ( const sc_event_and_list ,
sc_simcontext  
)
friend

◆ wait [3/9]

SC_API void wait ( const sc_event_or_list ,
sc_simcontext  
)
friend

◆ wait [4/9]

SC_API void wait ( const sc_time ,
const sc_event ,
sc_simcontext  
)
friend

◆ wait [5/9]

SC_API void wait ( const sc_time ,
const sc_event_and_list ,
sc_simcontext  
)
friend

◆ wait [6/9]

SC_API void wait ( const sc_time ,
const sc_event_or_list ,
sc_simcontext  
)
friend

◆ wait [7/9]

SC_API void wait ( const sc_time ,
sc_simcontext  
)
friend

◆ wait [8/9]

SC_API void wait ( int  ,
sc_simcontext  
)
friend

◆ wait [9/9]

SC_API void wait ( sc_simcontext )
friend

Member Data Documentation

◆ m_cor_p

sc_cor* sc_core::sc_thread_process::m_cor_p
protected

Definition at line 171 of file sc_thread_process.h.

◆ m_monitor_q

std::vector<sc_process_monitor*> sc_core::sc_thread_process::m_monitor_q
protected

Definition at line 172 of file sc_thread_process.h.

◆ m_stack_size

std::size_t sc_core::sc_thread_process::m_stack_size
protected

Definition at line 173 of file sc_thread_process.h.

◆ m_wait_cycle_n

int sc_core::sc_thread_process::m_wait_cycle_n
protected

Definition at line 174 of file sc_thread_process.h.


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