Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members  

scv_introspection.cpp File Reference

#include "scv/scv_util.h"
#include "scv/scv_config.h"
#include <systemc.h>
#include "scv/scv_introspection.h"
#include "scv/scv_debug.h"

Include dependency graph for scv_introspection.cpp:

Include dependency graph

Go to the source code of this file.

Defines

#define _SCV_DEFAULT_RW_SYSC(class_name, obj)
#define _SCV_EXT_TYPE_FC_COMMON_I(type_id)
#define _SCV_EXT_TYPE_FC_COMMON_EXT_I(basic_type, type_id, id)
#define _SCV_EXT_TYPE_FC_I(basic_type, type_id, id)
#define _SCV_EXT_TYPE_1_FC_I(basic_type, type_id, id)
#define _SCV_EXT_TYPE_D_FC_I(basic_type, type_id, id)
#define _SCV_EXT_RW_FC_BASE_I(T, type_id)
#define _SCV_EXT_RW_FC_ASSIGN_I(type_name, type_id, arg_name)
#define _SCV_EXT_RW_FC_BAD_ASSIGN_I(type_name, type_id, arg_name)
#define _SCV_EXT_RW_FC_GET_VALUE_I(type_name, type_id, arg_name)
#define _SCV_EXT_RW_FC_I(basic_type, type_id, bitwidth)
#define _SCV_EXT_RW_FC_ASSIGNS_SYSC_I(type_id, bitwidth)
#define _SCV_EXT_RW_FC_BAD_ASSIGNS_SYSC_I(type_name, type_id)
#define _SCV_EXT_RW_FC_ASSIGNS_I(type_name, type_id, bitwidth)
#define _SCV_EXT_RW_FC_ASSIGNS_I(type_name, type_id, dummy)
#define _SCV_EXT_RW_FC_ASSIGNS_I(type_name, type_id, dummy)
#define _SCV_EXT_RAND_FC_COMMON_I(T, type_id)
#define _SCV_EXT_RAND_FC_EXTRA1_I(T, type_id)
#define _SCV_EXT_RAND_FC_EXTRA2_I(T, type_id)
#define _SCV_EXT_RAND_FC_I(T, type_id)
#define _SCV_EXT_RAND_FC_1_I(T, type_id)
#define _SCV_EXT_RAND_FC_D_I(T, type_id)
#define _SCV_EXT_CALLBACKS_FC_I(basic_type, type_id)
#define _SCV_EXT_CALLBACKS_FC_1_I(basic_type, type_id)   _SCV_EXT_CALLBACKS_FC_I(basic_type,type_id) \
#define _SCV_EXT_CALLBACKS_FC_D_I(basic_type, type_id)   _SCV_EXT_CALLBACKS_FC_I(basic_type,type_id) \

Functions

void _scv_constraint_wrapup (scv_extensions_if *e)
void _scv_set_constraint (scv_extensions_if *s, bool mode)
template<typename T> bool check_mode (scv_extensions_if::mode_t t, scv_extensions_if *e, const string &name, _scv_distribution< T > *dist)
 _SCV_EXT_TYPE_1_FC_I (bool, bool, BOOLEAN)
 _SCV_EXT_TYPE_FC_I (char, char, INTEGER)
 _SCV_EXT_TYPE_FC_I (short, short, INTEGER)
 _SCV_EXT_TYPE_FC_I (int, int, INTEGER)
 _SCV_EXT_TYPE_FC_I (long, long, INTEGER)
 _SCV_EXT_TYPE_FC_I (unsigned char, unsigned_char, UNSIGNED)
 _SCV_EXT_TYPE_FC_I (float, float, FLOATING_POINT_NUMBER)
 _SCV_EXT_TYPE_FC_I (double, double, FLOATING_POINT_NUMBER)
 _SCV_EXT_TYPE_FC_I (string, string, STRING)
 _SCV_EXT_RW_FC_I (bool, bool, 1)
 _SCV_EXT_RW_FC_I (char, char, 8)
 _SCV_EXT_RW_FC_I (unsigned char, unsigned_char, 8)
 _SCV_EXT_RW_FC_I (short, short, 16)
 _SCV_EXT_RW_FC_I (unsigned short, unsigned_short, 16)
 _SCV_EXT_RW_FC_I (int, int, 32)
 _SCV_EXT_RW_FC_I (unsigned int, unsigned_int, 32)
 _SCV_EXT_RW_FC_I (long, long, 32)
 _SCV_EXT_RW_FC_I (long long, long_long, 64)
 _SCV_EXT_RW_FC_I (unsigned long long, unsigned_long_long, 64)
 _SCV_EXT_RW_FC_I (float, float, dummy)
 _SCV_EXT_RW_FC_I (double, double, dummy)
 _SCV_EXT_RW_FC_I (string, string, dummy)
 _SCV_EXT_RAND_FC_I (bool, bool)
 _SCV_EXT_RAND_FC_I (char, char)
 _SCV_EXT_RAND_FC_I (unsigned char, unsigned_char)
 _SCV_EXT_RAND_FC_I (short, short)
 _SCV_EXT_RAND_FC_I (int, int)
 _SCV_EXT_RAND_FC_I (long, long)
 _SCV_EXT_RAND_FC_I (float, float)
 _SCV_EXT_RAND_FC_I (double, double)
 _SCV_EXT_CALLBACKS_FC_I (bool, bool)
 _SCV_EXT_CALLBACKS_FC_I (char, char)
 _SCV_EXT_CALLBACKS_FC_I (unsigned char, unsigned_char)
 _SCV_EXT_CALLBACKS_FC_I (short, short)
 _SCV_EXT_CALLBACKS_FC_I (int, int)
 _SCV_EXT_CALLBACKS_FC_I (long, long)
 _SCV_EXT_CALLBACKS_FC_I (float, float)
 _SCV_EXT_CALLBACKS_FC_I (double, double)


Define Documentation

#define _SCV_DEFAULT_RW_SYSC class_name,
obj   
 

Definition at line 357 of file scv_introspection.cpp.

#define _SCV_EXT_CALLBACKS_FC_1_I basic_type,
type_id       _SCV_EXT_CALLBACKS_FC_I(basic_type,type_id) \
 

Definition at line 1491 of file scv_introspection.cpp.

#define _SCV_EXT_CALLBACKS_FC_D_I basic_type,
type_id       _SCV_EXT_CALLBACKS_FC_I(basic_type,type_id) \
 

Definition at line 1495 of file scv_introspection.cpp.

#define _SCV_EXT_CALLBACKS_FC_I basic_type,
type_id   
 

Value:

_scv_extension_callbacks_ ## type_id::_scv_extension_callbacks_ ## type_id() {} \
  _scv_extension_callbacks_ ## type_id::~_scv_extension_callbacks_ ## type_id() { \
    if (this->_has_dynamic_data() && !this->get_parent()) \
  this->_get_dynamic_data()->execute_callbacks(this, scv_extensions_if::DELETE); \
  } \
  \
  scv_extensions_if::callback_h _scv_extension_callbacks_ ## type_id::_register_cb(scv_extensions_if::callback_base * c) { \
    return s_add_callback(this->_get_dynamic_data(),c); \
  } \
  void _scv_extension_callbacks_ ## type_id::remove_cb(scv_extensions_if::callback_h id) { \
    s_remove_callback(this->_get_dynamic_data(),id); \
  } \

Definition at line 1476 of file scv_introspection.cpp.

#define _SCV_EXT_RAND_FC_1_I T,
type_id   
 

Value:

Definition at line 1427 of file scv_introspection.cpp.

#define _SCV_EXT_RAND_FC_COMMON_I T,
type_id   
 

Definition at line 1195 of file scv_introspection.cpp.

#define _SCV_EXT_RAND_FC_D_I T,
type_id   
 

Value:

Definition at line 1433 of file scv_introspection.cpp.

#define _SCV_EXT_RAND_FC_EXTRA1_I T,
type_id   
 

Definition at line 1242 of file scv_introspection.cpp.

#define _SCV_EXT_RAND_FC_EXTRA2_I T,
type_id   
 

Definition at line 1344 of file scv_introspection.cpp.

#define _SCV_EXT_RAND_FC_I T,
type_id   
 

Value:

Definition at line 1421 of file scv_introspection.cpp.

#define _SCV_EXT_RW_FC_ASSIGN_I type_name,
type_id,
arg_name   
 

Value:

void _scv_extension_rw_ ## type_id::assign(arg_name i) \
    { *(this->_get_instance()) = i; this->trigger_value_change_cb(); } \

Definition at line 657 of file scv_introspection.cpp.

#define _SCV_EXT_RW_FC_ASSIGNS_I type_name,
type_id,
dummy   
 

Definition at line 836 of file scv_introspection.cpp.

#define _SCV_EXT_RW_FC_ASSIGNS_I type_name,
type_id,
dummy   
 

Definition at line 836 of file scv_introspection.cpp.

#define _SCV_EXT_RW_FC_ASSIGNS_I type_name,
type_id,
bitwidth   
 

Definition at line 836 of file scv_introspection.cpp.

#define _SCV_EXT_RW_FC_ASSIGNS_SYSC_I type_id,
bitwidth   
 

Definition at line 730 of file scv_introspection.cpp.

#define _SCV_EXT_RW_FC_BAD_ASSIGN_I type_name,
type_id,
arg_name   
 

Value:

void _scv_extension_rw_ ## type_id::assign(arg_name i) \
    { _SCV_RW_ERROR(assign,arg_name,type_name); } \

Definition at line 662 of file scv_introspection.cpp.

#define _SCV_EXT_RW_FC_BAD_ASSIGNS_SYSC_I type_name,
type_id   
 

Definition at line 731 of file scv_introspection.cpp.

#define _SCV_EXT_RW_FC_BASE_I T,
type_id   
 

Value:

_scv_extension_rw_ ## type_id::_scv_extension_rw_ ## type_id() {} \
  _scv_extension_rw_ ## type_id::~_scv_extension_rw_ ## type_id() {} \
  \
  inline const T* _scv_extension_rw_ ## type_id::get_instance() const { return _instance; } \
  inline T* _scv_extension_rw_ ## type_id::get_instance() { return _instance; } \
  T* _scv_extension_rw_ ## type_id::_get_instance() const { return _instance; } \
  \
  void _scv_extension_rw_ ## type_id::_set_instance(T* p) { _instance = p; _set_instance_core_wrap(p); } \
  void _scv_extension_rw_ ## type_id::_set_instance_core_wrap(void*) {} \
  void _scv_extension_rw_ ## type_id::_set_as_field(_scv_extension_util_record * parent, T* p, \
        const string& name) { \
    if (p) _set_instance(p); \
    else if ( ! this->_get_parent() ) { this->_set_parent(parent,name); parent->_add_field(this); } \
  } \
  \
  const T& _scv_extension_rw_ ## type_id::read() { return *get_instance(); } \
  void _scv_extension_rw_ ## type_id::write(const T& rhs) { *_get_instance() = rhs; this->trigger_value_change_cb(); } \

Definition at line 633 of file scv_introspection.cpp.

#define _SCV_EXT_RW_FC_GET_VALUE_I type_name,
type_id,
arg_name   
 

Value:

void _scv_extension_rw_ ## type_id::get_value(arg_name& i) \
    { i = *(this->_get_instance()); } \

Definition at line 666 of file scv_introspection.cpp.

#define _SCV_EXT_RW_FC_I basic_type,
type_id,
bitwidth   
 

Value:

_SCV_EXT_RW_FC_BASE_I(basic_type,type_id) \
  _SCV_EXT_RW_FC_ASSIGNS_I(basic_type,type_id,bitwidth); \

Definition at line 679 of file scv_introspection.cpp.

#define _SCV_EXT_TYPE_1_FC_I basic_type,
type_id,
id   
 

Value:

_SCV_EXT_TYPE_FC_COMMON_EXT_I(basic_type,type_id,id) \
  int _scv_extension_type_ ## type_id::get_bitwidth() const \
    { return 1; } \

Definition at line 574 of file scv_introspection.cpp.

#define _SCV_EXT_TYPE_D_FC_I basic_type,
type_id,
id   
 

Value:

_SCV_EXT_TYPE_FC_COMMON_EXT_I(basic_type,type_id,id) \
  _scv_extension_type_ ## type_id::_scv_extension_type_ ## type_id() : _bitwidth(0) {} \
  _scv_extension_type_ ## type_id::~_scv_extension_type_ ## type_id() {} \
  int _scv_extension_type_ ## type_id::get_bitwidth() const \
    { return this->_bitwidth; }

Definition at line 581 of file scv_introspection.cpp.

#define _SCV_EXT_TYPE_FC_COMMON_EXT_I basic_type,
type_id,
id   
 

Value:

_SCV_EXT_TYPE_FC_COMMON_I(type_id) \
  const char *_scv_extension_type_ ## type_id::get_type_name() const { \
    static const char *s = strdup(#basic_type); \
    return s; \
  } \
  scv_extension_type_if::data_type _scv_extension_type_ ## type_id::get_type() const \
    { return scv_extensions_if::id; } \

Definition at line 556 of file scv_introspection.cpp.

#define _SCV_EXT_TYPE_FC_COMMON_I type_id   
 

Value:

int _scv_extension_type_ ## type_id::get_enum_size() const { return 0; } \
  void _scv_extension_type_ ## type_id::get_enum_details(list<const char *>&, list<int>&) const {} \
  const char *_scv_extension_type_ ## type_id::get_enum_string(int) const { return "_error"; } \
  \
  int _scv_extension_type_ ## type_id::get_num_fields() const { return 0; } \
  scv_extensions_if *_scv_extension_type_ ## type_id::get_field(unsigned) { return 0; } \
  const scv_extensions_if *_scv_extension_type_ ## type_id::get_field(unsigned) const { return 0; } \
  \
  scv_extensions_if *_scv_extension_type_ ## type_id::get_pointer() { return 0; } \
  const scv_extensions_if *_scv_extension_type_ ## type_id::get_pointer() const { return 0; } \
  \
  int _scv_extension_type_ ## type_id::get_array_size() const { return 0; } \
  scv_extensions_if *_scv_extension_type_ ## type_id::get_array_elt(int) { return 0; } \
  const scv_extensions_if *_scv_extension_type_ ## type_id::get_array_elt(int) const { return 0; } \
  \
  scv_extensions_if *_scv_extension_type_ ## type_id::get_parent() { return this->_parent; } \
  const scv_extensions_if *_scv_extension_type_ ## type_id::get_parent() const { return this->_parent; } \

Definition at line 536 of file scv_introspection.cpp.

#define _SCV_EXT_TYPE_FC_I basic_type,
type_id,
id   
 

Value:

_SCV_EXT_TYPE_FC_COMMON_EXT_I(basic_type,type_id,id) \
  int _scv_extension_type_ ## type_id::get_bitwidth() const \
    { return 8*sizeof(basic_type); } \

Definition at line 567 of file scv_introspection.cpp.


Function Documentation

void _scv_constraint_wrapup scv_extensions_if   e
 

Definition at line 3146 of file scv_constraint.cpp.

References scv_constraint_manager::wrapup().

Referenced by _scv_extension_rand_enum::~_scv_extension_rand_enum(), and _scv_extension_rand_N< T >::~_scv_extension_rand_N().

_SCV_EXT_CALLBACKS_FC_I double   ,
double   
 

_SCV_EXT_CALLBACKS_FC_I float   ,
float   
 

_SCV_EXT_CALLBACKS_FC_I long   ,
long   
 

_SCV_EXT_CALLBACKS_FC_I int   ,
int   
 

_SCV_EXT_CALLBACKS_FC_I short   ,
short   
 

_SCV_EXT_CALLBACKS_FC_I unsigned    char,
unsigned_char   
 

_SCV_EXT_CALLBACKS_FC_I char   ,
char   
 

_SCV_EXT_CALLBACKS_FC_I bool   ,
bool   
 

_SCV_EXT_RAND_FC_I double   ,
double   
 

_SCV_EXT_RAND_FC_I float   ,
float   
 

_SCV_EXT_RAND_FC_I long   ,
long   
 

_SCV_EXT_RAND_FC_I int   ,
int   
 

_SCV_EXT_RAND_FC_I short   ,
short   
 

_SCV_EXT_RAND_FC_I unsigned    char,
unsigned_char   
 

_SCV_EXT_RAND_FC_I char   ,
char   
 

_SCV_EXT_RAND_FC_I bool   ,
bool   
 

_SCV_EXT_RW_FC_I string   ,
string   ,
dummy   
 

_SCV_EXT_RW_FC_I double   ,
double   ,
dummy   
 

_SCV_EXT_RW_FC_I float   ,
float   ,
dummy   
 

_SCV_EXT_RW_FC_I unsigned long    long,
unsigned_long_long   ,
64   
 

_SCV_EXT_RW_FC_I long    long,
long_long   ,
64   
 

_SCV_EXT_RW_FC_I long   ,
long   ,
32   
 

_SCV_EXT_RW_FC_I unsigned    int,
unsigned_int   ,
32   
 

_SCV_EXT_RW_FC_I int   ,
int   ,
32   
 

_SCV_EXT_RW_FC_I unsigned    short,
unsigned_short   ,
16   
 

_SCV_EXT_RW_FC_I short   ,
short   ,
16   
 

_SCV_EXT_RW_FC_I unsigned    char,
unsigned_char   ,
 
 

_SCV_EXT_RW_FC_I char   ,
char   ,
 
 

_SCV_EXT_RW_FC_I bool   ,
bool   ,
 
 

_SCV_EXT_TYPE_1_FC_I bool   ,
bool   ,
BOOLEAN   
 

_SCV_EXT_TYPE_FC_I string   ,
string   ,
STRING   
 

_SCV_EXT_TYPE_FC_I double   ,
double   ,
FLOATING_POINT_NUMBER   
 

_SCV_EXT_TYPE_FC_I float   ,
float   ,
FLOATING_POINT_NUMBER   
 

_SCV_EXT_TYPE_FC_I unsigned    char,
unsigned_char   ,
UNSIGNED   
 

_SCV_EXT_TYPE_FC_I long   ,
long   ,
INTEGER   
 

_SCV_EXT_TYPE_FC_I int   ,
int   ,
INTEGER   
 

_SCV_EXT_TYPE_FC_I short   ,
short   ,
INTEGER   
 

_SCV_EXT_TYPE_FC_I char   ,
char   ,
INTEGER   
 

void _scv_set_constraint scv_extensions_if   s,
bool    mode
 

Definition at line 3751 of file scv_constraint.cpp.

References _scv_constraint_data::CONSTRAINT, _scv_constraint_data::is_distribution_constraint(), _scv_constraint_data::is_range_constraint(), and _scv_constraint_data::set_mode().

Referenced by _scv_extension_rand_enum::set_constraint(), _scv_extension_rand_N< T >::set_constraint(), scv_extension_rand< T[N]>::set_constraint(), and scv_extension_rand< T >::set_constraint().

template<typename T>
bool check_mode scv_extensions_if::mode_t    t,
scv_extensions_if   e,
const string &    name,
_scv_distribution< T > *    dist
 

Definition at line 677 of file _scv_randomization.h.

References _scv_constraint_data::CONSTRAINT, _scv_constraint_data::DISTRIBUTION, _scv_constraint_data::DISTRIBUTION_RANGE, _scv_constraint_data::EMPTY, _scv_constraint_data::EXTENSION, _scv_constraint_data::get_constraint(), _scv_distribution_base< T >::get_distribution(), _scv_distribution_base< T >::get_distribution_range(), _scv_constraint_data::get_extension(), _scv_constraint_data::get_gen_type(), _scv_message::message(), _scv_constraint_data::NO_CONSTRAINT, _scv_constraint_data::RANGE_CONSTRAINT, and _scv_constraint_data::set_mode().

Referenced by scv_enum_base< T >::set_mode(), and _scv_extension_rand_N< T >::set_mode().


Generated on Fri Jan 14 08:30:43 2005 for SystemC2.1beta11(excludingMSLib)(IncludingSCV)\nProvidedby:www.openverificationfoundation.org by doxygen1.2.18