#include <sc_cthread_process.h>
sc_cthread_process.h の 85 行で定義されています。
sc_core::sc_cthread_process::sc_cthread_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_cthread_process.cpp の 132 行で定義されています。
00135 : 00136 sc_thread_process(name_p, free_host, method_p, host_p, opt_p) 00137 { 00138 m_dont_init = false; 00139 m_process_kind = SC_CTHREAD_PROC_; 00140 }
sc_core::sc_cthread_process::~sc_cthread_process | ( | ) | [virtual] |
sc_core::sc_cthread_process::sc_cthread_process | ( | const char * | nm, | |
SC_ENTRY_FUNC | fn, | |||
sc_process_host * | host | |||
) | [private] |
void sc_core::sc_cthread_process::dont_initialize | ( | bool | dont | ) | [virtual] |
sc_core::sc_process_bを再定義しています。
sc_cthread_process.cpp の 107 行で定義されています。
00108 { 00109 SC_REPORT_WARNING( SC_ID_DONT_INITIALIZE_, 0 ); 00110 }
virtual const char* sc_core::sc_cthread_process::kind | ( | ) | const [inline, virtual] |
sc_cthread_handle sc_core::sc_cthread_process::next_exist | ( | ) | [inline, protected] |
sc_core::sc_thread_processを再定義しています。
sc_cthread_process.h の 149 行で定義されています。
00150 { 00151 return (sc_cthread_handle)m_exist_p; 00152 }
void sc_core::sc_cthread_process::set_next_exist | ( | sc_cthread_handle | next_p | ) | [inline, protected] |
void sc_core::sc_cthread_process::prepare_for_simulation | ( | ) | [private, virtual] |
sc_core::sc_thread_processを再定義しています。
sc_cthread_process.cpp の 119 行で定義されています。
00120 { 00121 m_cor_p = simcontext()->cor_pkg()->create( m_stack_size, 00122 sc_cthread_cor_fn, this ); 00123 m_cor_p->stack_protect( true ); 00124 }
bool sc_core::sc_cthread_process::eval_watchlist | ( | ) | [private] |
bool sc_core::sc_cthread_process::eval_watchlist_curr_level | ( | ) | [private] |
void sc_core::sc_cthread_process::wait_halt | ( | ) | [inline, private] |
sc_cthread_process.h の 163 行で定義されています。
00164 { 00165 m_wait_cycle_n = 0; 00166 suspend_me(); 00167 throw sc_halt(); 00168 }
friend class sc_module [friend] |
friend class sc_process_handle [friend] |
friend class sc_process_table [friend] |
friend class sc_thread_process [friend] |
sc_cthread_process.h の 90 行で定義されています。
friend class sc_simcontext [friend] |
void wait | ( | sc_simcontext * | ) | [friend] |
sc_core::sc_thread_processを再定義しています。
void wait | ( | const sc_event & | , | |
sc_simcontext * | ||||
) | [friend] |
sc_core::sc_thread_processを再定義しています。
void wait | ( | sc_event_or_list & | , | |
sc_simcontext * | ||||
) | [friend] |
sc_core::sc_thread_processを再定義しています。
void wait | ( | sc_event_and_list & | , | |
sc_simcontext * | ||||
) | [friend] |
sc_core::sc_thread_processを再定義しています。
void wait | ( | const sc_time & | , | |
sc_simcontext * | ||||
) | [friend] |
sc_core::sc_thread_processを再定義しています。
void wait | ( | const sc_time & | , | |
const sc_event & | , | |||
sc_simcontext * | ||||
) | [friend] |
sc_core::sc_thread_processを再定義しています。
void wait | ( | const sc_time & | , | |
sc_event_or_list & | , | |||
sc_simcontext * | ||||
) | [friend] |
sc_core::sc_thread_processを再定義しています。
void wait | ( | const sc_time & | , | |
sc_event_and_list & | , | |||
sc_simcontext * | ||||
) | [friend] |
sc_core::sc_thread_processを再定義しています。
void sc_cthread_cor_fn | ( | void * | ) | [friend] |
sc_core::sc_thread_processを再定義しています。
sc_cthread_process.cpp の 63 行で定義されています。
00064 { 00065 sc_cthread_handle cthread_h = RCAST<sc_cthread_handle>( arg ); 00066 00067 // EXECUTE THE CTHREAD AND PROCESS ANY EXCEPTIONS THAT ARE THROWN: 00068 // 00069 // We set the wait state to unknown before invoking the semantics 00070 // in case we are reset, since the wait state will not be cleared, 00071 // since that happens only if we are not reset. 00072 00073 while( true ) { 00074 00075 try { 00076 cthread_h->semantics(); 00077 } 00078 catch( sc_user ) { 00079 continue; 00080 } 00081 catch( sc_halt ) { 00082 ::std::cout << "Terminating process " 00083 << cthread_h->name() << ::std::endl; 00084 } 00085 catch( const sc_report& ex ) { 00086 ::std::cout << "\n" << ex.what() << ::std::endl; 00087 cthread_h->simcontext()->set_error(); 00088 } 00089 00090 break; 00091 } 00092 00093 // SCHEDULE THREAD FOR DESTRUCTION: 00094 // 00095 // If control reaches this point the process semantics have returned 00096 // so the process should die. 00097 00098 cthread_h->kill_process(); 00099 00100 }
void halt | ( | sc_simcontext * | ) | [friend] |
void wait | ( | int | , | |
sc_simcontext * | ||||
) | [friend] |