SystemC 3.0.0
Accellera SystemC proof-of-concept library
Classes | Namespaces | Macros | Typedefs | Functions | Variables
sc_module.h File Reference
#include "sysc/kernel/sc_kernel_ids.h"
#include "sysc/kernel/sc_macros.h"
#include "sysc/kernel/sc_module_name.h"
#include "sysc/kernel/sc_process.h"
#include "sysc/kernel/sc_process_handle.h"
#include "sysc/kernel/sc_sensitive.h"
#include "sysc/kernel/sc_time.h"
#include "sysc/kernel/sc_wait.h"
#include "sysc/kernel/sc_wait_cthread.h"
#include "sysc/utils/sc_list.h"
#include <type_traits>
Include dependency graph for sc_module.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  sc_core::sc_bind_proxy
 
class  sc_core::sc_module
 

Namespaces

namespace  sc_core
 

Macros

#define SC_SEMICOLON_   /* nothing */
 
#define SC_MODULE(user_module_name)    struct user_module_name : ::sc_core::sc_module
 
#define SC_HAS_PROCESS(user_module_type)    static_assert(sc_core::sc_has_process_used, "no-op to avoid stray ';'")
 
#define SC_CURRENT_USER_MODULE_TYPE    std::remove_reference<decltype(*this)>::type
 
#define SC_CTOR(...)    SC_CTOR_IMPL_(__VA_ARGS__)(__VA_ARGS__)
 
#define SC_CTOR_IMPL_ONE_(user_module_name)    user_module_name( ::sc_core::sc_module_name )
 
#define SC_CTOR_IMPL_MORE_(user_module_name, ...)    user_module_name( ::sc_core::sc_module_name, __VA_ARGS__)
 
#define SC_CTOR_IMPL_(...)    SC_CONCAT_HELPER_(SC_CTOR_IMPL_, SC_VARARG_HELPER_EXPAND_(__VA_ARGS__))
 
#define SC_CTHREAD(func, edge)
 
#define SC_METHOD(func)
 
#define SC_THREAD(func)
 

Typedefs

typedef sc_module sc_core::sc_channel
 
typedef sc_module sc_core::sc_behavior
 

Functions

SC_API sc_module * sc_core::sc_module_dynalloc (sc_module *)
 

Variables

SC_API const sc_bind_proxy sc_core::SC_BIND_PROXY_NIL
 
static constexpr bool sc_core::sc_has_process_used = true
 

Macro Definition Documentation

◆ SC_CTHREAD

#define SC_CTHREAD (   func,
  edge 
)
Value:
this->declare_cthread_process \
#define SC_SEMICOLON_
Definition: sc_module.h:399
#define SC_CURRENT_USER_MODULE_TYPE
Definition: sc_module.h:420
#define SC_MAKE_FUNC_PTR(callback_tag, func)
Definition: sc_process.h:133

Definition at line 449 of file sc_module.h.

◆ SC_CTOR

#define SC_CTOR (   ...)     SC_CTOR_IMPL_(__VA_ARGS__)(__VA_ARGS__)

Definition at line 425 of file sc_module.h.

◆ SC_CTOR_IMPL_

#define SC_CTOR_IMPL_ (   ...)     SC_CONCAT_HELPER_(SC_CTOR_IMPL_, SC_VARARG_HELPER_EXPAND_(__VA_ARGS__))

Definition at line 435 of file sc_module.h.

◆ SC_CTOR_IMPL_MORE_

#define SC_CTOR_IMPL_MORE_ (   user_module_name,
  ... 
)     user_module_name( ::sc_core::sc_module_name, __VA_ARGS__)

Definition at line 433 of file sc_module.h.

◆ SC_CTOR_IMPL_ONE_

#define SC_CTOR_IMPL_ONE_ (   user_module_name)     user_module_name( ::sc_core::sc_module_name )

Definition at line 429 of file sc_module.h.

◆ SC_CURRENT_USER_MODULE_TYPE

#define SC_CURRENT_USER_MODULE_TYPE    std::remove_reference<decltype(*this)>::type

Definition at line 420 of file sc_module.h.

◆ SC_HAS_PROCESS

#define SC_HAS_PROCESS (   user_module_type)     static_assert(sc_core::sc_has_process_used, "no-op to avoid stray ';'")

Definition at line 417 of file sc_module.h.

◆ SC_METHOD

#define SC_METHOD (   func)
Value:
this->declare_method_process \

Definition at line 454 of file sc_module.h.

◆ SC_MODULE

#define SC_MODULE (   user_module_name)     struct user_module_name : ::sc_core::sc_module

Definition at line 409 of file sc_module.h.

◆ SC_SEMICOLON_

#define SC_SEMICOLON_   /* nothing */

Definition at line 399 of file sc_module.h.

◆ SC_THREAD

#define SC_THREAD (   func)
Value:
this->declare_thread_process \

Definition at line 459 of file sc_module.h.