User initiated dynamic process support. More...
#include <sysc/kernel/sc_process.h>
User initiated dynamic process support.
This class implements the base class for a threaded process_base process whose semantics are provided by the true virtual method semantics(). Classes derived from this one will provide a version of semantics which implements the desired semantics. See the sc_spawn_xxx classes below.
Notes: (1) Object instances of this class maintain a reference count of outstanding handles. When the handle count goes to zero the object will be deleted. (2) Descriptions of the methods and operators in this class appear with their implementations. (3) The m_sticky_reset field is used to handle synchronous resets that are enabled via the sc_process_handle::sync_reset_on() method. These resets are not generated by a signal, but rather are modal by method call: sync_reset_on - sync_reset_off.
Definition at line 542 of file sc_process.h.
Definition at line 579 of file sc_process.h.
Definition at line 571 of file sc_process.h.
Definition at line 587 of file sc_process.h.
Definition at line 593 of file sc_process.h.
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 | ( | ) | [protected, virtual] |
void sc_core::sc_process_b::add_child_object | ( | sc_object * | object_p | ) | [inline, protected, virtual] |
Definition at line 831 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 | ( | ) | [inline, protected] |
Definition at line 938 of file sc_process.h.
int sc_core::sc_process_b::current_state | ( | ) | [inline] |
Definition at line 615 of file sc_process.h.
virtual void sc_core::sc_process_b::disable_process | ( | sc_descendant_inclusion_info | descendants = SC_NO_DESCENDANTS |
) | [protected, pure virtual] |
Implemented in sc_core::sc_method_process, and sc_core::sc_thread_process.
void sc_core::sc_process_b::disconnect_process | ( | ) | [protected] |
virtual void sc_core::sc_process_b::dont_initialize | ( | bool | dont | ) | [virtual] |
Reimplemented in sc_core::sc_cthread_process.
bool sc_core::sc_process_b::dont_initialize | ( | ) | const [inline] |
Definition at line 616 of file sc_process.h.
std::string sc_core::sc_process_b::dump_state | ( | ) | const |
bool sc_core::sc_process_b::dynamic | ( | ) | const [inline, protected] |
Definition at line 702 of file sc_process.h.
virtual void sc_core::sc_process_b::enable_process | ( | sc_descendant_inclusion_info | descendants = SC_NO_DESCENDANTS |
) | [protected, pure virtual] |
Implemented in sc_core::sc_method_process, and sc_core::sc_thread_process.
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 [inline, virtual] |
Reimplemented from sc_core::sc_object.
Definition at line 851 of file sc_process.h.
int sc_core::sc_process_b::get_instance_id | ( | ) |
Set the instance ID of this process.
sc_report* sc_core::sc_process_b::get_last_report | ( | ) | [inline, protected] |
Definition at line 704 of file sc_process.h.
int sc_core::sc_process_b::get_segment_id | ( | ) |
Set the current segment ID of this process.
const sc_timestamp& sc_core::sc_process_b::get_timestamp | ( | ) |
Set the local time stamp of this process.
void sc_core::sc_process_b::initially_in_reset | ( | bool | async | ) | [inline, protected] |
Definition at line 866 of file sc_process.h.
bool sc_core::sc_process_b::is_disabled | ( | ) | const [inline, protected] |
Definition at line 879 of file sc_process.h.
bool sc_core::sc_process_b::is_runnable | ( | ) | const [inline, protected] |
Definition at line 890 of file sc_process.h.
bool sc_core::sc_process_b::is_unwinding | ( | ) | const [inline, protected] |
Definition at line 900 of file sc_process.h.
virtual void sc_core::sc_process_b::kill_process | ( | sc_descendant_inclusion_info | descendants = SC_NO_DESCENDANTS |
) | [protected, pure virtual] |
Implemented in sc_core::sc_method_process, and sc_core::sc_thread_process.
sc_process_b * sc_core::sc_process_b::last_created_process_base | ( | ) | [inline, static, protected] |
Definition at line 951 of file sc_process.h.
sc_process_handle sc_core::sc_process_b::last_created_process_handle | ( | ) | [inline, static] |
Definition at line 517 of file sc_process_handle.h.
void sc_core::sc_process_b::lock_all_channels | ( | void | ) |
Acquire all the channel locks.
Acquire all the channel locks in the list m_acq_chnl_lock_queue, from the beginning to the end.
void sc_core::sc_process_b::lock_and_push | ( | CHNL_MTX_TYPE_ * | lock | ) |
Acquire a new channel lock or increment the lock counter.
Acquire a new channel lock and push it to the end of the list m_acq_chnl_lock_queue, or increment the lock counter of the corresponding channel lock in the list.
void sc_core::sc_process_b::pop_and_unlock | ( | CHNL_MTX_TYPE_ * | lock | ) |
Release a channel lock or decrement the lock counter.
Release the channel lock at the end of the list m_acq_chnl_lock_queue if its lock counter equals one, or decrement its lock counter.
sc_curr_proc_kind sc_core::sc_process_b::proc_kind | ( | ) | const [inline] |
Definition at line 963 of file sc_process.h.
bool sc_core::sc_process_b::remove_child_object | ( | sc_object * | object_p | ) | [inline, protected, virtual] |
Definition at line 838 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 |
) | [protected, pure virtual] |
Implemented in sc_core::sc_method_process, and sc_core::sc_thread_process.
void sc_core::sc_process_b::semantics | ( | ) | [inline, protected] |
Definition at line 1012 of file sc_process.h.
void sc_core::sc_process_b::set_instance_id | ( | int | id | ) |
Get the instance ID of this process.
void sc_core::sc_process_b::set_last_report | ( | sc_report * | last_p | ) | [inline, protected] |
Definition at line 711 of file sc_process.h.
void sc_core::sc_process_b::set_segment_id | ( | int | id | ) |
Get the current segment ID of this process.
void sc_core::sc_process_b::set_timestamp | ( | const sc_timestamp & | ts | ) |
Get the local time stamp of this process.
bool sc_core::sc_process_b::start_unwinding | ( | ) | [inline, protected] |
Definition at line 913 of file sc_process.h.
virtual void sc_core::sc_process_b::suspend_process | ( | sc_descendant_inclusion_info | descendants = SC_NO_DESCENDANTS |
) | [protected, pure virtual] |
Implemented in sc_core::sc_method_process, and sc_core::sc_thread_process.
bool sc_core::sc_process_b::terminated | ( | ) | const [inline, protected, virtual] |
Definition at line 1053 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 | ) | [protected, pure virtual] |
Implemented in sc_core::sc_method_process, and sc_core::sc_thread_process.
virtual void sc_core::sc_process_b::throw_user | ( | const sc_throw_it_helper & | helper, | |
sc_descendant_inclusion_info | descendants = SC_NO_DESCENDANTS | |||
) | [protected, pure virtual] |
Implemented in sc_core::sc_method_process, and sc_core::sc_thread_process.
bool sc_core::sc_process_b::timed_out | ( | ) | const [inline, protected] |
Definition at line 1064 of file sc_process.h.
void sc_core::sc_process_b::trigger_reset_event | ( | ) | [protected] |
void sc_core::sc_process_b::unlock_all_channels | ( | void | ) |
Release all the channel locks.
Release all the channel locks in the list m_acq_chnl_lock_queue, from the end of the beginning.
friend class sc_channel [friend] |
Reimplemented from sc_core::sc_object.
Reimplemented in sc_core::sc_cthread_process, sc_core::sc_method_process, and sc_core::sc_thread_process.
Definition at line 558 of file sc_process.h.
friend class sc_cthread_process [friend] |
Definition at line 544 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 545 of file sc_process.h.
friend class sc_module [friend] |
Reimplemented from sc_core::sc_object.
Reimplemented in sc_core::sc_cthread_process, sc_core::sc_method_process, and sc_core::sc_thread_process.
Definition at line 555 of file sc_process.h.
friend class sc_object [friend] |
Definition at line 549 of file sc_process.h.
friend class sc_port_base [friend] |
Definition at line 550 of file sc_process.h.
friend class sc_process_handle [friend] |
Reimplemented in sc_core::sc_cthread_process, sc_core::sc_method_process, and sc_core::sc_thread_process.
Definition at line 546 of file sc_process.h.
friend class sc_report_handler [friend] |
Definition at line 560 of file sc_process.h.
friend class sc_reset [friend] |
Definition at line 561 of file sc_process.h.
friend class sc_reset_finder [friend] |
Definition at line 562 of file sc_process.h.
friend class sc_runnable [friend] |
Reimplemented from sc_core::sc_object.
Reimplemented in sc_core::sc_method_process, and sc_core::sc_thread_process.
Definition at line 551 of file sc_process.h.
friend class sc_sensitive [friend] |
Definition at line 552 of file sc_process.h.
friend class sc_sensitive_neg [friend] |
Definition at line 554 of file sc_process.h.
friend class sc_sensitive_pos [friend] |
Definition at line 553 of file sc_process.h.
friend class sc_simcontext [friend] |
Reimplemented from sc_core::sc_object.
Reimplemented in sc_core::sc_cthread_process, sc_core::sc_method_process, and sc_core::sc_thread_process.
Definition at line 543 of file sc_process.h.
void sc_thread_cor_fn | ( | void * | arg | ) | [friend] |
Reimplemented in sc_core::sc_thread_process.
friend class sc_thread_process [friend] |
Reimplemented in sc_core::sc_cthread_process.
Definition at line 547 of file sc_process.h.
friend class sc_unwind_exception [friend] |
Definition at line 563 of file sc_process.h.
bool timed_out | ( | sc_simcontext * | ) | [friend] |
const char* sc_core::sc_process_b::file |
Definition at line 756 of file sc_process.h.
Definition at line 757 of file sc_process.h.
A list of channel locks acquired by this process.
Definition at line 798 of file sc_process.h.
int sc_core::sc_process_b::m_active_areset_n [protected] |
Definition at line 761 of file sc_process.h.
int sc_core::sc_process_b::m_active_reset_n [protected] |
Definition at line 762 of file sc_process.h.
bool sc_core::sc_process_b::m_dont_init [protected] |
Definition at line 763 of file sc_process.h.
bool sc_core::sc_process_b::m_dynamic_proc [protected] |
Definition at line 764 of file sc_process.h.
int sc_core::sc_process_b::m_event_count [protected] |
Definition at line 766 of file sc_process.h.
const sc_event_list* sc_core::sc_process_b::m_event_list_p [protected] |
Definition at line 767 of file sc_process.h.
const sc_event* sc_core::sc_process_b::m_event_p [protected] |
Definition at line 765 of file sc_process.h.
sc_process_b* sc_core::sc_process_b::m_exist_p [protected] |
Definition at line 768 of file sc_process.h.
bool sc_core::sc_process_b::m_free_host [protected] |
Definition at line 769 of file sc_process.h.
bool sc_core::sc_process_b::m_has_reset_signal [protected] |
Definition at line 770 of file sc_process.h.
bool sc_core::sc_process_b::m_has_stack [protected] |
Definition at line 771 of file sc_process.h.
int sc_core::sc_process_b::m_instance_id [protected] |
The instance ID of this process.
Definition at line 816 of file sc_process.h.
bool sc_core::sc_process_b::m_is_thread [protected] |
Definition at line 772 of file sc_process.h.
sc_process_b* sc_core::sc_process_b::m_last_created_process_p [static, protected] |
Definition at line 819 of file sc_process.h.
sc_report* sc_core::sc_process_b::m_last_report_p [protected] |
Definition at line 773 of file sc_process.h.
sc_name_gen* sc_core::sc_process_b::m_name_gen_p [protected] |
Definition at line 774 of file sc_process.h.
Definition at line 775 of file sc_process.h.
int sc_core::sc_process_b::m_references_n [protected] |
Definition at line 776 of file sc_process.h.
sc_event* sc_core::sc_process_b::m_reset_event_p [protected] |
Definition at line 778 of file sc_process.h.
std::vector<sc_reset*> sc_core::sc_process_b::m_resets [protected] |
Definition at line 777 of file sc_process.h.
sc_event* sc_core::sc_process_b::m_resume_event_p [protected] |
Definition at line 779 of file sc_process.h.
sc_process_b* sc_core::sc_process_b::m_runnable_p [protected] |
Definition at line 780 of file sc_process.h.
int sc_core::sc_process_b::m_segment_id [protected] |
The current segment ID of this process.
Definition at line 804 of file sc_process.h.
sc_process_host* sc_core::sc_process_b::m_semantics_host_p [protected] |
Definition at line 781 of file sc_process.h.
Definition at line 782 of file sc_process.h.
int sc_core::sc_process_b::m_state [protected] |
Definition at line 783 of file sc_process.h.
std::vector<const sc_event*> sc_core::sc_process_b::m_static_events [protected] |
Definition at line 784 of file sc_process.h.
bool sc_core::sc_process_b::m_sticky_reset [protected] |
Definition at line 785 of file sc_process.h.
sc_event* sc_core::sc_process_b::m_term_event_p [protected] |
Definition at line 786 of file sc_process.h.
Definition at line 787 of file sc_process.h.
Definition at line 788 of file sc_process.h.
bool sc_core::sc_process_b::m_timed_out [protected] |
Definition at line 789 of file sc_process.h.
sc_event* sc_core::sc_process_b::m_timeout_event_p [protected] |
Definition at line 790 of file sc_process.h.
sc_timestamp sc_core::sc_process_b::m_timestamp [protected] |
The local time stamp of this process.
Definition at line 810 of file sc_process.h.
trigger_t sc_core::sc_process_b::m_trigger_type [protected] |
Definition at line 791 of file sc_process.h.
bool sc_core::sc_process_b::m_unwinding [protected] |
Definition at line 792 of file sc_process.h.
Definition at line 758 of file sc_process.h.