SystemC  2.3.1
Accellera SystemC proof-of-concept library
Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | Protected Member Functions | Static Protected Member Functions | Protected Attributes | Static Protected Attributes | Friends | List of all members
sc_core::sc_process_b Class Referenceabstract

#include <sysc/kernel/sc_process.h>

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

Public Types

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
 

Public Member Functions

 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 ()
 
- 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
 
sc_objectget_parent () const
 
sc_objectget_parent_object () const
 

Static Public Member Functions

static sc_process_handle last_created_process_handle ()
 

Public Attributes

const char * file
 
int lineno
 
int proc_id
 

Protected Member Functions

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
 
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
 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)
 

Static Protected Member Functions

static sc_process_blast_created_process_base ()
 

Protected Attributes

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
 

Static Protected Attributes

static sc_process_bm_last_created_process_p
 

Friends

class sc_simcontext
 
class sc_cthread_process
 
class sc_method_process
 
class sc_process_handle
 
class sc_thread_process
 
class sc_object
 
class sc_port_base
 
class sc_runnable
 
class sc_sensitive
 
class sc_sensitive_pos
 
class sc_sensitive_neg
 
class sc_module
 
class sc_report_handler
 
class sc_reset
 
class sc_reset_finder
 
class sc_unwind_exception
 
const char * sc_gen_unique_name (const char *, bool preserve_first)
 
sc_process_handle sc_get_current_process_handle ()
 
void sc_thread_cor_fn (void *arg)
 
bool timed_out (sc_simcontext *)
 

Detailed Description

Definition at line 267 of file sc_process.h.

Member Enumeration Documentation

Enumerator
ps_bit_disabled 
ps_bit_ready_to_run 
ps_bit_suspended 
ps_bit_zombie 
ps_normal 

Definition at line 300 of file sc_process.h.

Enumerator
THROW_NONE 
THROW_KILL 
THROW_USER 
THROW_ASYNC_RESET 
THROW_SYNC_RESET 

Definition at line 292 of file sc_process.h.

Enumerator
reset_asynchronous 
reset_synchronous_off 
reset_synchronous_on 

Definition at line 308 of file sc_process.h.

Enumerator
STATIC 
EVENT 
OR_LIST 
AND_LIST 
TIMEOUT 
EVENT_TIMEOUT 
OR_LIST_TIMEOUT 
AND_LIST_TIMEOUT 

Definition at line 314 of file sc_process.h.

Constructor & Destructor Documentation

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

Member Function Documentation

void sc_core::sc_process_b::add_child_object ( sc_object object_p)
inlineprotectedvirtual

Reimplemented from sc_core::sc_object.

Definition at line 456 of file sc_process.h.

void sc_core::sc_process_b::add_static_event ( const sc_event )
protected
bool sc_core::sc_process_b::clear_unwinding ( )
inlineprotected

Definition at line 563 of file sc_process.h.

int sc_core::sc_process_b::current_state ( )
inline

Definition at line 336 of file sc_process.h.

virtual void sc_core::sc_process_b::disable_process ( sc_descendant_inclusion_info  descendants = SC_NO_DESCENDANTS)
protectedpure virtual
void sc_core::sc_process_b::disconnect_process ( )
protected
bool sc_core::sc_process_b::dont_initialize ( ) const
inline

Definition at line 337 of file sc_process.h.

virtual void sc_core::sc_process_b::dont_initialize ( bool  dont)
virtual

Reimplemented in sc_core::sc_cthread_process.

std::string sc_core::sc_process_b::dump_state ( ) const
bool sc_core::sc_process_b::dynamic ( ) const
inlineprotected

Definition at line 351 of file sc_process.h.

virtual void sc_core::sc_process_b::enable_process ( sc_descendant_inclusion_info  descendants = SC_NO_DESCENDANTS)
protectedpure virtual
const char* sc_core::sc_process_b::gen_unique_name ( const char *  basename_,
bool  preserve_first 
)
protected
const ::std::vector< sc_object * > & sc_core::sc_process_b::get_child_objects ( ) const
inlinevirtual

Reimplemented from sc_core::sc_object.

Definition at line 476 of file sc_process.h.

sc_report* sc_core::sc_process_b::get_last_report ( )
inlineprotected

Definition at line 353 of file sc_process.h.

void sc_core::sc_process_b::initially_in_reset ( bool  async)
inlineprotected

Definition at line 491 of file sc_process.h.

bool sc_core::sc_process_b::is_disabled ( ) const
inlineprotected

Definition at line 504 of file sc_process.h.

bool sc_core::sc_process_b::is_runnable ( ) const
inlineprotected

Definition at line 515 of file sc_process.h.

bool sc_core::sc_process_b::is_unwinding ( ) const
inlineprotected

Definition at line 525 of file sc_process.h.

virtual void sc_core::sc_process_b::kill_process ( sc_descendant_inclusion_info  descendants = SC_NO_DESCENDANTS)
protectedpure virtual
sc_process_b * sc_core::sc_process_b::last_created_process_base ( )
inlinestaticprotected

Definition at line 576 of file sc_process.h.

sc_process_handle sc_core::sc_process_b::last_created_process_handle ( )
inlinestatic

Definition at line 513 of file sc_process_handle.h.

sc_curr_proc_kind sc_core::sc_process_b::proc_kind ( ) const
inline

Definition at line 588 of file sc_process.h.

bool sc_core::sc_process_b::remove_child_object ( sc_object object_p)
inlineprotectedvirtual

Reimplemented from sc_core::sc_object.

Definition at line 463 of file sc_process.h.

void sc_core::sc_process_b::remove_dynamic_events ( bool  skip_timeout = false)
protected
void sc_core::sc_process_b::remove_static_events ( )
protected
void sc_core::sc_process_b::report_error ( const char *  msgid,
const char *  msg = "" 
) const
protected
void sc_core::sc_process_b::report_immediate_self_notification ( ) const
protected
void sc_core::sc_process_b::reset_changed ( bool  async,
bool  asserted 
)
protected
sc_event& sc_core::sc_process_b::reset_event ( )
void sc_core::sc_process_b::reset_process ( reset_type  rt,
sc_descendant_inclusion_info  descendants = SC_NO_DESCENDANTS 
)
protected
virtual void sc_core::sc_process_b::resume_process ( sc_descendant_inclusion_info  descendants = SC_NO_DESCENDANTS)
protectedpure virtual
void sc_core::sc_process_b::semantics ( )
inlineprotected

Definition at line 637 of file sc_process.h.

void sc_core::sc_process_b::set_last_report ( sc_report last_p)
inlineprotected

Definition at line 360 of file sc_process.h.

bool sc_core::sc_process_b::start_unwinding ( )
inlineprotected

Definition at line 538 of file sc_process.h.

virtual void sc_core::sc_process_b::suspend_process ( sc_descendant_inclusion_info  descendants = SC_NO_DESCENDANTS)
protectedpure virtual
bool sc_core::sc_process_b::terminated ( ) const
inlineprotectedvirtual

Definition at line 678 of file sc_process.h.

sc_event& sc_core::sc_process_b::terminated_event ( )
virtual void sc_core::sc_process_b::throw_reset ( bool  async)
protectedpure virtual
virtual void sc_core::sc_process_b::throw_user ( const sc_throw_it_helper helper,
sc_descendant_inclusion_info  descendants = SC_NO_DESCENDANTS 
)
protectedpure virtual
bool sc_core::sc_process_b::timed_out ( ) const
inlineprotected

Definition at line 689 of file sc_process.h.

void sc_core::sc_process_b::trigger_reset_event ( )
protected

Friends And Related Function Documentation

friend class sc_cthread_process
friend

Definition at line 269 of file sc_process.h.

const char* sc_gen_unique_name ( const char *  ,
bool  preserve_first 
)
friend
sc_process_handle sc_get_current_process_handle ( )
friend
friend class sc_method_process
friend

Definition at line 270 of file sc_process.h.

friend class sc_module
friend

Definition at line 280 of file sc_process.h.

friend class sc_object
friend

Definition at line 274 of file sc_process.h.

friend class sc_port_base
friend

Definition at line 275 of file sc_process.h.

friend class sc_process_handle
friend

Definition at line 271 of file sc_process.h.

friend class sc_report_handler
friend

Definition at line 281 of file sc_process.h.

friend class sc_reset
friend

Definition at line 282 of file sc_process.h.

friend class sc_reset_finder
friend

Definition at line 283 of file sc_process.h.

friend class sc_runnable
friend

Definition at line 276 of file sc_process.h.

friend class sc_sensitive
friend

Definition at line 277 of file sc_process.h.

friend class sc_sensitive_neg
friend

Definition at line 279 of file sc_process.h.

friend class sc_sensitive_pos
friend

Definition at line 278 of file sc_process.h.

friend class sc_simcontext
friend

Definition at line 268 of file sc_process.h.

void sc_thread_cor_fn ( void *  arg)
friend
friend class sc_thread_process
friend

Definition at line 272 of file sc_process.h.

friend class sc_unwind_exception
friend

Definition at line 284 of file sc_process.h.

bool timed_out ( sc_simcontext )
friend

Member Data Documentation

const char* sc_core::sc_process_b::file

Definition at line 405 of file sc_process.h.

int sc_core::sc_process_b::lineno

Definition at line 406 of file sc_process.h.

int sc_core::sc_process_b::m_active_areset_n
protected

Definition at line 410 of file sc_process.h.

int sc_core::sc_process_b::m_active_reset_n
protected

Definition at line 411 of file sc_process.h.

bool sc_core::sc_process_b::m_dont_init
protected

Definition at line 412 of file sc_process.h.

bool sc_core::sc_process_b::m_dynamic_proc
protected

Definition at line 413 of file sc_process.h.

int sc_core::sc_process_b::m_event_count
protected

Definition at line 415 of file sc_process.h.

const sc_event_list* sc_core::sc_process_b::m_event_list_p
protected

Definition at line 416 of file sc_process.h.

const sc_event* sc_core::sc_process_b::m_event_p
protected

Definition at line 414 of file sc_process.h.

sc_process_b* sc_core::sc_process_b::m_exist_p
protected

Definition at line 417 of file sc_process.h.

bool sc_core::sc_process_b::m_free_host
protected

Definition at line 418 of file sc_process.h.

bool sc_core::sc_process_b::m_has_reset_signal
protected

Definition at line 419 of file sc_process.h.

bool sc_core::sc_process_b::m_has_stack
protected

Definition at line 420 of file sc_process.h.

bool sc_core::sc_process_b::m_is_thread
protected

Definition at line 421 of file sc_process.h.

sc_process_b* sc_core::sc_process_b::m_last_created_process_p
staticprotected

Definition at line 444 of file sc_process.h.

sc_report* sc_core::sc_process_b::m_last_report_p
protected

Definition at line 422 of file sc_process.h.

sc_name_gen* sc_core::sc_process_b::m_name_gen_p
protected

Definition at line 423 of file sc_process.h.

sc_curr_proc_kind sc_core::sc_process_b::m_process_kind
protected

Definition at line 424 of file sc_process.h.

int sc_core::sc_process_b::m_references_n
protected

Definition at line 425 of file sc_process.h.

sc_event* sc_core::sc_process_b::m_reset_event_p
protected

Definition at line 427 of file sc_process.h.

std::vector<sc_reset*> sc_core::sc_process_b::m_resets
protected

Definition at line 426 of file sc_process.h.

sc_event* sc_core::sc_process_b::m_resume_event_p
protected

Definition at line 428 of file sc_process.h.

sc_process_b* sc_core::sc_process_b::m_runnable_p
protected

Definition at line 429 of file sc_process.h.

sc_process_host* sc_core::sc_process_b::m_semantics_host_p
protected

Definition at line 430 of file sc_process.h.

SC_ENTRY_FUNC sc_core::sc_process_b::m_semantics_method_p
protected

Definition at line 431 of file sc_process.h.

int sc_core::sc_process_b::m_state
protected

Definition at line 432 of file sc_process.h.

std::vector<const sc_event*> sc_core::sc_process_b::m_static_events
protected

Definition at line 433 of file sc_process.h.

bool sc_core::sc_process_b::m_sticky_reset
protected

Definition at line 434 of file sc_process.h.

sc_event* sc_core::sc_process_b::m_term_event_p
protected

Definition at line 435 of file sc_process.h.

sc_throw_it_helper* sc_core::sc_process_b::m_throw_helper_p
protected

Definition at line 436 of file sc_process.h.

process_throw_type sc_core::sc_process_b::m_throw_status
protected

Definition at line 437 of file sc_process.h.

bool sc_core::sc_process_b::m_timed_out
protected

Definition at line 438 of file sc_process.h.

sc_event* sc_core::sc_process_b::m_timeout_event_p
protected

Definition at line 439 of file sc_process.h.

trigger_t sc_core::sc_process_b::m_trigger_type
protected

Definition at line 440 of file sc_process.h.

bool sc_core::sc_process_b::m_unwinding
protected

Definition at line 441 of file sc_process.h.

int sc_core::sc_process_b::proc_id

Definition at line 407 of file sc_process.h.


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