SystemC  Recoding Infrastructure for SystemC v0.6.2 derived from Accellera SystemC 2.3.1
Accellera SystemC proof-of-concept library
Classes | Namespaces | Macros | Typedefs | Enumerations | Functions | Variables
sc_process.h File Reference
#include <string>
#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 <set>
#include <unordered_set>
#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.

Classes

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 >
 
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
 

Namespaces

 sc_core
 

Macros

#define SC_INCLUDE_WINDOWS_H
 
#define CHNL_MTX_TYPE_   pthread_mutex_t
 
#define CHNL_PTHREAD_NULL_   NULL
 
#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) )
 
#define _SYSC_PRINT_VERBOSE_MESSAGE_ENV_VAR   "SYSC_PRINT_VERBOSE_MESSAGE"
 
#define SC_USE_MEMBER_FUNC_PTR
 Process invocation method or function. More...
 
#define SC_DECL_HELPER_STRUCT(callback_tag, func)   /*EMPTY*/
 
#define SC_MAKE_FUNC_PTR(callback_tag, func)   static_cast<sc_core::SC_ENTRY_FUNC>(&callback_tag::func)
 

Typedefs

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
 

Enumerations

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 }
 

Functions

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::heap_cmp (sc_process_b *&s, sc_process_b *&t)
 

Variables

bool sc_core::sc_allow_process_control_corners
 

Macro Definition Documentation

#define _SYSC_PRINT_VERBOSE_MESSAGE_ENV_VAR   "SYSC_PRINT_VERBOSE_MESSAGE"

Definition at line 100 of file sc_process.h.

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

Definition at line 89 of file sc_process.h.

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

Definition at line 74 of file sc_process.h.

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

Definition at line 76 of file sc_process.h.

#define CHNL_MTX_TRYLOCK_ (   Mutex)    ( false )

Definition at line 85 of file sc_process.h.

#define CHNL_MTX_TYPE_   pthread_mutex_t

Definition at line 66 of file sc_process.h.

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

Definition at line 78 of file sc_process.h.

#define CHNL_PTHREAD_NULL_   NULL

Definition at line 71 of file sc_process.h.

#define SC_DECL_HELPER_STRUCT (   callback_tag,
  func 
)    /*EMPTY*/

Definition at line 213 of file sc_process.h.

#define SC_INCLUDE_WINDOWS_H

Definition at line 44 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 214 of file sc_process.h.

#define SC_USE_MEMBER_FUNC_PTR

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 204 of file sc_process.h.