#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"
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 > |
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 |
Namespaces | |
namespace | sc_core |
Defines | |
#define | sc_process_h_INCLUDED |
#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 | SC_USE_MEMBER_FUNC_PTR |
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) |
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) |
Variables | |
bool | sc_core::sc_allow_process_control_corners |
#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.
#define CHNL_PTHREAD_NULL_ NULL |
Definition at line 69 of file sc_process.h.
#define SC_DECL_HELPER_STRUCT | ( | callback_tag, | |||
func | ) |
Definition at line 207 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 208 of file sc_process.h.
#define sc_process_h_INCLUDED |
Definition at line 30 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 198 of file sc_process.h.