107         : m_simc( simc ) { assert( simc != 0 ); }
 
  114             std::size_t stack_size, 
sc_cor_fn* fn, 
void* arg ) = 0;
 
  127     virtual void go( 
sc_cor* next_cor ) = 0;
 
virtual void increment_counter()=0
Increment the lock counter. 
 
virtual sc_cor * create(std::size_t stack_size, sc_cor_fn *fn, void *arg)=0
 
virtual bool is_unlocked()=0
Check whether the kernel lock is released. 
 
sc_cor_pkg(sc_simcontext *simc)
 
virtual void acquire_sched_mutex()=0
Acquire the kernel lock. 
 
virtual bool is_not_owner()=0
Check whether the kernel lock is not owned by this coroutine. 
 
Coroutine package abstract base class. 
 
sc_simcontext * simcontext()
 
virtual unsigned int get_counter()=0
Get the value of the lock counter. 
 
virtual sc_cor * get_main()=0
 
Coroutine abstract base class. 
 
virtual void stack_protect(bool)
 
virtual bool is_locked_and_owner()=0
Check whether the kernel lock is acquired and owned by this coroutine. 
 
virtual void * get_thread_specific()=0
Get the thread specific data value. 
 
virtual void join(sc_cor *join_cor)=0
 
virtual void yield(sc_cor *next_cor)=0
 
virtual void decrement_counter()=0
Decrement the lock counter. 
 
virtual bool is_lock_owner()=0
Check whether the kernel lock is owned by this coroutine. 
 
virtual bool is_locked()=0
Check whether the kernel lock is acquired. 
 
void( sc_cor_fn)(void *)
Function type for creating coroutines. 
 
virtual void release_sched_mutex()=0
Release the kernel lock. 
 
virtual void abort(sc_cor *next_cor)=0
 
virtual void go(sc_cor *next_cor)=0
Resume the next coroutine. 
 
virtual void set_thread_specific(void *process_b)=0
Set the thread specific data value. 
 
virtual void wait(sc_cor *cur_cor)=0
Suspend the current coroutine.