#include <sc_cor_qt.h>
Public メソッド | |
sc_cor_pkg_qt (sc_simcontext *simc) | |
virtual | ~sc_cor_pkg_qt () |
virtual sc_cor * | create (std::size_t stack_size, sc_cor_fn *fn, void *arg) |
virtual void | yield (sc_cor *next_cor) |
virtual void | abort (sc_cor *next_cor) |
virtual sc_cor * | get_main () |
Private メソッド | |
sc_cor_pkg_qt () | |
sc_cor_pkg_qt (const sc_cor_pkg_qt &) | |
sc_cor_pkg_qt & | operator= (const sc_cor_pkg_qt &) |
Static Private 変数 | |
static int | instance_count = 0 |
sc_cor_qt.h の 103 行で定義されています。
sc_core::sc_cor_pkg_qt::sc_cor_pkg_qt | ( | sc_simcontext * | simc | ) |
sc_cor_qt.cpp の 141 行で定義されています。
00142 : sc_cor_pkg( simc ) 00143 { 00144 if( ++ instance_count == 1 ) { 00145 // initialize the current coroutine 00146 assert( curr_cor == 0 ); 00147 curr_cor = &main_cor; 00148 } 00149 }
sc_core::sc_cor_pkg_qt::~sc_cor_pkg_qt | ( | ) | [virtual] |
sc_cor_qt.cpp の 154 行で定義されています。
00155 { 00156 if( -- instance_count == 0 ) { 00157 // cleanup the current coroutine 00158 curr_cor = 0; 00159 } 00160 }
sc_core::sc_cor_pkg_qt::sc_cor_pkg_qt | ( | ) | [private] |
sc_core::sc_cor_pkg_qt::sc_cor_pkg_qt | ( | const sc_cor_pkg_qt & | ) | [private] |
sc_cor * sc_core::sc_cor_pkg_qt::create | ( | std::size_t | stack_size, | |
sc_cor_fn * | fn, | |||
void * | arg | |||
) | [virtual] |
sc_core::sc_cor_pkgを実装しています。
sc_cor_qt.cpp の 176 行で定義されています。
00177 { 00178 sc_cor_qt* cor = new sc_cor_qt(); 00179 cor->m_pkg = this; 00180 cor->m_stack_size = stack_size; 00181 cor->m_stack = new char[cor->m_stack_size]; 00182 void* sto = stack_align( cor->m_stack, QUICKTHREADS_STKALIGN, 00183 &cor->m_stack_size ); 00184 cor->m_sp = QUICKTHREADS_SP(sto, cor->m_stack_size - QUICKTHREADS_STKALIGN); 00185 cor->m_sp = QUICKTHREADS_ARGS( cor->m_sp, arg, cor, (qt_userf_t*) fn, 00186 sc_cor_qt_wrapper ); 00187 return cor; 00188 }
void sc_core::sc_cor_pkg_qt::yield | ( | sc_cor * | next_cor | ) | [virtual] |
sc_core::sc_cor_pkgを実装しています。
sc_cor_qt.cpp の 202 行で定義されています。
00203 { 00204 sc_cor_qt* new_cor = SCAST<sc_cor_qt*>( next_cor ); 00205 sc_cor_qt* old_cor = curr_cor; 00206 curr_cor = new_cor; 00207 QUICKTHREADS_BLOCK( sc_cor_qt_yieldhelp, old_cor, 0, new_cor->m_sp ); 00208 }
void sc_core::sc_cor_pkg_qt::abort | ( | sc_cor * | next_cor | ) | [virtual] |
sc_core::sc_cor_pkgを実装しています。
sc_cor_qt.cpp の 221 行で定義されています。
00222 { 00223 sc_cor_qt* new_cor = SCAST<sc_cor_qt*>( next_cor ); 00224 sc_cor_qt* old_cor = curr_cor; 00225 curr_cor = new_cor; 00226 QUICKTHREADS_ABORT( sc_cor_qt_aborthelp, old_cor, 0, new_cor->m_sp ); 00227 }
sc_cor * sc_core::sc_cor_pkg_qt::get_main | ( | ) | [virtual] |
sc_core::sc_cor_pkgを実装しています。
sc_cor_qt.cpp の 233 行で定義されています。
00234 { 00235 return &main_cor; 00236 }
sc_cor_pkg_qt& sc_core::sc_cor_pkg_qt::operator= | ( | const sc_cor_pkg_qt & | ) | [private] |
int sc_core::sc_cor_pkg_qt::instance_count = 0 [static, private] |
sc_cor_qt.h の 128 行で定義されています。