SystemC  Recoding Infrastructure for SystemC v0.6.0 derived from Accellera SystemC 2.3.1
Accellera SystemC proof-of-concept library
Public Member Functions | Public Attributes | Protected Member Functions | Protected Attributes | Friends | List of all members
sc_core::sc_thread_process Class Reference

A thread process. More...

#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
 
void aux_boundary ()
 
- Public Member Functions inherited from sc_core::sc_process_b
void set_upcoming_segment_ids (int *segment_ids)
 sets the upcoming segment ids TS 07/08/17 More...
 
int * get_upcoming_segment_ids ()
 returns the upcoming segment ids TS 07/08/17 More...
 
void set_upcoming_socket_id (int socket_id)
 sets the upcoming socket id ZC 10:30 2018/10/31 More...
 
int get_upcoming_socket_id ()
 returns the upcoming socket id ZC 10:31 2018/10/31 More...
 
void increase_offset (int offset)
 increase the offset ZC 10:30 2018/10/31 More...
 
void decrease_offset (int offset)
 decrease the offset ZC 10:31 2018/10/31 More...
 
int get_offset ()
 returns the offset ZC 10:31 2018/10/31 More...
 
 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
 
const ::std::vector< sc_object * > & get_child_objects () const
 
sc_curr_proc_kind proc_kind () const
 
sc_eventreset_event ()
 
sc_eventterminated_event ()
 
void lock_and_push (CHNL_MTX_TYPE_ *lock)
 Acquire a new channel lock or increment the lock counter. More...
 
void pop_and_unlock (CHNL_MTX_TYPE_ *lock)
 Release a channel lock or decrement the lock counter. More...
 
void lock_all_channels (void)
 Acquire all the channel locks. More...
 
void unlock_all_channels (void)
 Release all the channel locks. More...
 
int get_segment_id ()
 Set the current segment ID of this process. More...
 
void set_segment_id (int id)
 Get the current segment ID of this process. More...
 
const sc_timestampget_timestamp ()
 Set the local time stamp of this process. More...
 
void set_timestamp (const sc_timestamp &ts)
 Get the local time stamp of this process. More...
 
int get_instance_id ()
 Set the instance ID of this process. More...
 
void set_instance_id (int id)
 Get the instance ID of this process. More...
 
void add_sensitivity_event (const sc_event &e)
 
std::string event_names ()
 
- 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
 
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
 
sc_objectget_parent () const
 
sc_objectget_parent_object () const
 

Public Attributes

sc_eventwaiting_event
 
sc_timestamp first_triggerable_time
 
- Public Attributes inherited from sc_core::sc_process_b
bool event_list_member_triggered
 
sc_timestamp wake_up_time_for_event_list
 
int * segment_ids
 stores the upcoming segment ids TS 07/08/17 More...
 
int socket_id_
 stores the upcoming socket id ZC 10:31 2018/10/31 More...
 
const char * file
 
int lineno
 
int proc_id
 
int m_process_state
 The name of this process. More...
 
sc_event_or_listm_sensitivity_events
 
sc_timestamp possible_wakeup_time
 
bool invoker
 
sc_process_bcur_invoker_method_handle
 

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 *, bool &)
 
bool deliver_event_at_time (sc_event *e, sc_timestamp e_delivery_time)
 
void trigger_static (sc_event *)
 A new parameter is added to update the local time stamp in the thread process. More...
 
void wait (const sc_event &, int=-1)
 A new parameter segment ID is added for the out-of-order simulation. More...
 
void wait (const sc_event_or_list &, int=-1)
 A new parameter segment ID is added for the out-of-order simulation. More...
 
void wait (const sc_event_and_list &, int=-1)
 A new parameter segment ID is added for the out-of-order simulation. More...
 
void wait (const sc_time &, int=-1)
 A new parameter segment ID is added for the out-of-order simulation. More...
 
void wait (const sc_time &, const sc_event &, int=-1)
 A new parameter segment ID is added for the out-of-order simulation. More...
 
void wait (const sc_time &, const sc_event_or_list &, int=-1)
 A new parameter segment ID is added for the out-of-order simulation. More...
 
void wait (const sc_time &, const sc_event_and_list &, int=-1)
 A new parameter segment ID is added for the out-of-order simulation. More...
 
void wait_cycles (int, int n=1)
 A new parameter segment ID is added for the out-of-order simulation. More...
 
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 *)
 
void add_static_event (const sc_event &)
 
bool dynamic () const
 
const char * gen_unique_name (const char *basename_, bool preserve_first)
 
sc_reportget_last_report ()
 
bool is_disabled () const
 
bool is_runnable () const
 
virtual bool remove_child_object (sc_object *)
 
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
 
void disconnect_process ()
 
void initially_in_reset (bool async)
 
bool is_unwinding () const
 
bool start_unwinding ()
 
bool clear_unwinding ()
 
void reset_changed (bool async, bool asserted)
 
void reset_process (reset_type rt, sc_descendant_inclusion_info descendants=SC_NO_DESCENDANTS)
 
virtual bool terminated () const
 
void trigger_reset_event ()
 
void semantics ()
 
- 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 ~sc_object ()
 
virtual void add_child_event (sc_event *event_p)
 
virtual bool remove_child_event (sc_event *event_p)
 
phase_cb_mask register_simulation_phase_callback (phase_cb_mask)
 
phase_cb_mask unregister_simulation_phase_callback (phase_cb_mask)
 

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
 
bool 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_name_genm_name_gen_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
 
sc_acq_chnl_lock_queue m_acq_chnl_lock_queue
 A list of channel locks acquired by this process. More...
 
int m_segment_id
 The current segment ID of this process. More...
 
sc_timestamp m_timestamp
 The local time stamp of this process. More...
 
int m_instance_id
 The instance ID of this process. More...
 
int seg_offset_
 

Friends

class sc_event
 
class sc_join
 
class sc_module
 
class sc_channel
 
class sc_process_b
 
class sc_process_handle
 
class sc_process_table
 
class sc_simcontext
 
class sc_runnable
 
class Invoker
 
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)
 
void wait (int, sc_simcontext *)
 
void wait (const sc_event &, int, sc_simcontext *)
 A new parameter segment ID is added for the out-of-order simulation. More...
 
void wait (const sc_event_or_list &, int, sc_simcontext *)
 A new parameter segment ID is added for the out-of-order simulation. More...
 
void wait (const sc_event_and_list &, int, sc_simcontext *)
 A new parameter segment ID is added for the out-of-order simulation. More...
 
void wait (const sc_time &, int, sc_simcontext *)
 A new parameter segment ID is added for the out-of-order simulation. More...
 
void wait (const sc_time &, const sc_event &, int, sc_simcontext *)
 A new parameter segment ID is added for the out-of-order simulation. More...
 
void wait (const sc_time &, const sc_event_or_list &, int, sc_simcontext *)
 A new parameter segment ID is added for the out-of-order simulation. More...
 
void wait (const sc_time &, const sc_event_and_list &, int, sc_simcontext *)
 A new parameter segment ID is added for the out-of-order simulation. More...
 

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
}
 
- Public Types inherited from sc_core::sc_object
typedef unsigned phase_cb_mask
 
- Static Public Member Functions inherited from sc_core::sc_process_b
static sc_process_handle last_created_process_handle ()
 
- 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

A thread process.

Definition at line 98 of file sc_thread_process.h.

Constructor & Destructor Documentation

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 
)
virtual sc_core::sc_thread_process::~sc_thread_process ( )
protectedvirtual

Member Function Documentation

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

Definition at line 806 of file sc_thread_process.h.

void sc_core::sc_thread_process::aux_boundary ( )
inline

Definition at line 450 of file sc_thread_process.h.

bool sc_core::sc_thread_process::deliver_event_at_time ( sc_event e,
sc_timestamp  e_delivery_time 
)
protected
virtual void sc_core::sc_thread_process::disable_process ( sc_descendant_inclusion_info  descendants = SC_NO_DESCENDANTS)
protectedvirtual

Implements sc_core::sc_process_b.

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

Implements sc_core::sc_process_b.

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

Implements sc_core::sc_process_b.

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 137 of file sc_thread_process.h.

sc_thread_handle sc_core::sc_thread_process::next_exist ( )
inlineprotected

Definition at line 834 of file sc_thread_process.h.

sc_thread_handle sc_core::sc_thread_process::next_runnable ( )
inlineprotected

Definition at line 846 of file sc_thread_process.h.

virtual void sc_core::sc_thread_process::prepare_for_simulation ( )
protectedvirtual
void sc_core::sc_thread_process::remove_monitor ( sc_process_monitor monitor_p)
inlineprotected

Definition at line 813 of file sc_thread_process.h.

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

Implements sc_core::sc_process_b.

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

Definition at line 828 of file sc_thread_process.h.

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

Definition at line 840 of file sc_thread_process.h.

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

Definition at line 257 of file sc_thread_process.h.

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

Definition at line 282 of file sc_thread_process.h.

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

Implements sc_core::sc_process_b.

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

Implements sc_core::sc_process_b.

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.

bool sc_core::sc_thread_process::trigger_dynamic ( sc_event ,
bool &   
)
protected
void sc_core::sc_thread_process::trigger_static ( sc_event e)
inlineprotected

A new parameter is added to update the local time stamp in the thread process.

Definition at line 871 of file sc_thread_process.h.

void sc_core::sc_thread_process::wait ( const sc_event e,
int  seg_id = -1 
)
inlineprotected

A new parameter segment ID is added for the out-of-order simulation.

Definition at line 492 of file sc_thread_process.h.

void sc_core::sc_thread_process::wait ( const sc_event_or_list el,
int  seg_id = -1 
)
inlineprotected

A new parameter segment ID is added for the out-of-order simulation.

Definition at line 536 of file sc_thread_process.h.

void sc_core::sc_thread_process::wait ( const sc_event_and_list el,
int  seg_id = -1 
)
inlineprotected

A new parameter segment ID is added for the out-of-order simulation.

Definition at line 579 of file sc_thread_process.h.

void sc_core::sc_thread_process::wait ( const sc_time t,
int  seg_id = -1 
)
inlineprotected

A new parameter segment ID is added for the out-of-order simulation.

Definition at line 621 of file sc_thread_process.h.

void sc_core::sc_thread_process::wait ( const sc_time t,
const sc_event e,
int  seg_id = -1 
)
inlineprotected

A new parameter segment ID is added for the out-of-order simulation.

Definition at line 665 of file sc_thread_process.h.

void sc_core::sc_thread_process::wait ( const sc_time t,
const sc_event_or_list el,
int  seg_id = -1 
)
inlineprotected

A new parameter segment ID is added for the out-of-order simulation.

Definition at line 698 of file sc_thread_process.h.

void sc_core::sc_thread_process::wait ( const sc_time t,
const sc_event_and_list el,
int  seg_id = -1 
)
inlineprotected

A new parameter segment ID is added for the out-of-order simulation.

Definition at line 731 of file sc_thread_process.h.

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

A new parameter segment ID is added for the out-of-order simulation.

Definition at line 774 of file sc_thread_process.h.

Friends And Related Function Documentation

sc_cor* get_cor_pointer ( sc_process_b process_p)
friend
friend class Invoker
friend

Definition at line 115 of file sc_thread_process.h.

friend class sc_channel
friend

Definition at line 106 of file sc_thread_process.h.

friend class sc_event
friend

Definition at line 101 of file sc_thread_process.h.

friend class sc_join
friend

Definition at line 102 of file sc_thread_process.h.

friend class sc_module
friend

Definition at line 103 of file sc_thread_process.h.

friend class sc_process_b
friend

Definition at line 108 of file sc_thread_process.h.

friend class sc_process_handle
friend

Definition at line 109 of file sc_thread_process.h.

friend class sc_process_table
friend

Definition at line 110 of file sc_thread_process.h.

friend class sc_runnable
friend

Definition at line 112 of file sc_thread_process.h.

void sc_set_stack_size ( sc_thread_handle  ,
std::size_t   
)
friend
friend class sc_simcontext
friend

Definition at line 111 of file sc_thread_process.h.

void sc_thread_cor_fn ( void *  )
friend
void wait ( int  ,
sc_simcontext  
)
friend
void wait ( const sc_event ,
int  ,
sc_simcontext  
)
friend

A new parameter segment ID is added for the out-of-order simulation.

void wait ( const sc_event_or_list ,
int  ,
sc_simcontext  
)
friend

A new parameter segment ID is added for the out-of-order simulation.

void wait ( const sc_event_and_list ,
int  ,
sc_simcontext  
)
friend

A new parameter segment ID is added for the out-of-order simulation.

void wait ( const sc_time ,
int  ,
sc_simcontext  
)
friend

A new parameter segment ID is added for the out-of-order simulation.

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

A new parameter segment ID is added for the out-of-order simulation.

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

A new parameter segment ID is added for the out-of-order simulation.

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

A new parameter segment ID is added for the out-of-order simulation.

Member Data Documentation

sc_timestamp sc_core::sc_thread_process::first_triggerable_time

Definition at line 132 of file sc_thread_process.h.

sc_cor* sc_core::sc_thread_process::m_cor_p
protected

Definition at line 242 of file sc_thread_process.h.

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

Definition at line 243 of file sc_thread_process.h.

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

Definition at line 244 of file sc_thread_process.h.

int sc_core::sc_thread_process::m_wait_cycle_n
protected

Definition at line 245 of file sc_thread_process.h.

sc_event* sc_core::sc_thread_process::waiting_event

Definition at line 131 of file sc_thread_process.h.


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