sysc/kernel/sc_process.h File Reference

#include <cassert>
#include "sysc/utils/sc_iostream.h"
#include "sysc/kernel/sc_constants.h"
#include "sysc/kernel/sc_object.h"
#include "sysc/kernel/sc_kernel_ids.h"
#include "sysc/communication/sc_export.h"
#include <list>
#include "sysc/kernel/sc_cmnhdr.h"
#include <pthread.h>
#include "sysc/kernel/sc_time.h"
#include "sysc/datatypes/int/sc_nbdefs.h"
Include dependency graph for sc_process.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.


class  sc_core::sc_process_host
 This is the base class for objects which may have processes defined for their methods (e.g., sc_module). More...
class  sc_core::sc_process_monitor
class  sc_core::sc_throw_it_helper
class  sc_core::sc_throw_it< EXCEPT >
 Arbitrary exception class. More...
struct  sc_core::sc_chnl_lock
 A data structure to keep the state of a channel lock. More...
class  sc_core::sc_acq_chnl_lock_queue
 A list of channel locks acquired by a process. More...
class  sc_core::sc_timestamp
 A time stamp combining timed cycles and delta cycles. More...
class  sc_core::sc_process_b
 User initiated dynamic process support. More...
struct  sc_core::scoped_flag


namespace  sc_core


#define sc_process_h_INCLUDED
#define CHNL_MTX_TYPE_   pthread_mutex_t
#define CHNL_MTX_INIT_(Mutex)   pthread_mutex_init( &(Mutex), CHNL_PTHREAD_NULL_ )
#define CHNL_MTX_LOCK_(Mutex)   pthread_mutex_lock( &(Mutex) )
#define CHNL_MTX_UNLOCK_(Mutex)   pthread_mutex_unlock( &(Mutex) )
#define CHNL_MTX_TRYLOCK_(Mutex)   ( false )
#define CHNL_MTX_DESTROY_(Mutex)   pthread_mutex_destroy( &(Mutex) )
 Process invocation method or function.
#define SC_DECL_HELPER_STRUCT(callback_tag, func)
#define SC_MAKE_FUNC_PTR(callback_tag, func)   static_cast<sc_core::SC_ENTRY_FUNC>(&callback_tag::func)


typedef class sc_cthread_process * sc_core::sc_cthread_handle
typedef class sc_method_process * sc_core::sc_method_handle
typedef class sc_thread_process * sc_core::sc_thread_handle
typedef void(sc_process_host::* sc_core::SC_ENTRY_FUNC )()
typedef sc_process_b sc_core::sc_process_b


enum  sc_core::sc_curr_proc_kind { sc_core::SC_NO_PROC_, sc_core::SC_METHOD_PROC_, sc_core::SC_THREAD_PROC_, sc_core::SC_CTHREAD_PROC_ }
enum  sc_core::sc_descendant_inclusion_info { sc_core::SC_NO_DESCENDANTS = 0, sc_core::SC_INCLUDE_DESCENDANTS, sc_core::SC_INVALID_DESCENDANTS }


const char * sc_core::sc_gen_unique_name (const char *, bool preserve_first)
sc_process_handle sc_core::sc_get_current_process_handle ()
void sc_core::sc_thread_cor_fn (void *arg)
bool sc_core::timed_out (sc_simcontext *)
void sc_core::sc_set_stack_size (sc_thread_handle, std::size_t)
void sc_core::sc_set_stack_size (sc_method_handle, std::size_t)


bool sc_core::sc_allow_process_control_corners

Define Documentation

#define CHNL_MTX_DESTROY_ ( Mutex   )     pthread_mutex_destroy( &(Mutex) )

Definition at line 87 of file sc_process.h.

#define CHNL_MTX_INIT_ ( Mutex   )     pthread_mutex_init( &(Mutex), CHNL_PTHREAD_NULL_ )

Definition at line 72 of file sc_process.h.

#define CHNL_MTX_LOCK_ ( Mutex   )     pthread_mutex_lock( &(Mutex) )

Definition at line 74 of file sc_process.h.

#define CHNL_MTX_TRYLOCK_ ( Mutex   )     ( false )

Definition at line 83 of file sc_process.h.

#define CHNL_MTX_TYPE_   pthread_mutex_t

Definition at line 64 of file sc_process.h.

#define CHNL_MTX_UNLOCK_ ( Mutex   )     pthread_mutex_unlock( &(Mutex) )

Definition at line 76 of file sc_process.h.


Definition at line 69 of file sc_process.h.

#define SC_DECL_HELPER_STRUCT ( callback_tag,
func   ) 

Definition at line 204 of file sc_process.h.

#define SC_MAKE_FUNC_PTR ( callback_tag,
func   )     static_cast<sc_core::SC_ENTRY_FUNC>(&callback_tag::func)

Definition at line 205 of file sc_process.h.

#define sc_process_h_INCLUDED

Definition at line 30 of file sc_process.h.


Process invocation method or function.

Define SC_USE_MEMBER_FUNC_PTR if we want to use member function pointers to implement process dispatch. Otherwise, we'll use a hack that involves creating a templated invocation object which will invoke the member function. This should not be necessary, but some compilers (e.g., VC++) do not allow the conversion from `void (callback_tag::*)()' to `void (sc_process_host::*)()'. This is supposed to be OK as long as the dynamic type is correct. C++ Standard 5.4 "Explicit type conversion", clause 7: a pointer to member of derived class type may be explicitly converted to a pointer to member of an unambiguous non-virtual base class type.

Definition at line 195 of file sc_process.h.

Generated on 30 Sep 2016 for SystemC by  doxygen 1.6.1