SystemC Library API Reference Manual
Reference documentation for the Simics SystemC Library.
 
Loading...
Searching...
No Matches
simics::systemc::iface::SimicsAdapter< TSimicsInterface > Class Template Reference

Base class for mapping Simics interface to a C++ interface. More...

#include <simics_adapter.h>

Inheritance diagram for simics::systemc::iface::SimicsAdapter< TSimicsInterface >:
simics::systemc::Registrant< SimicsAdapterInterface >

Public Member Functions

 SimicsAdapter (const char *name, TSimicsInterface iface)
 
std::string name () const override
 
const interface_t * cstruct () const override
 
void set_simics_class (conf_class_t *conf_class) override
 
conf_class_t * simics_class () const override
 
void set_map_adapter (bool map) override
 
bool map_adapter () const override
 
- Public Member Functions inherited from simics::systemc::Registrant< SimicsAdapterInterface >
 Registrant ()
 
 Registrant (const Registrant &rhs)
 
virtual ~Registrant ()
 
void detach ()
 

Protected Member Functions

template<typename TBase , typename TInterface >
std::vector< std::string > descriptionBase (conf_object_t *obj, DescriptionType type)
 

Static Protected Member Functions

template<typename TBase , typename TInterface >
static TInterface * adapterWithoutLocking (conf_object_t *obj)
 
template<typename TBase , typename TInterface >
static SimicsLock< TInterface > adapter (conf_object_t *obj, conf_object_t *obj_lock)
 
template<typename TBase , typename TInterface >
static SimicsLock< TInterface > adapter (conf_object_t *obj)
 

Detailed Description

template<typename TSimicsInterface>
class simics::systemc::iface::SimicsAdapter< TSimicsInterface >

Base class for mapping Simics interface to a C++ interface.

Simics interfaces rely on pointers to free functions. The SimicsAdapter classes maps a static function to a corresponding C++ interface function.

This class is not intended to be instantiated, but should be inherited from when creating new interface adapters.

See also
IoMemorySimicsAdapter
createAdapter()

Constructor & Destructor Documentation

◆ SimicsAdapter()

template<typename TSimicsInterface >
simics::systemc::iface::SimicsAdapter< TSimicsInterface >::SimicsAdapter ( const char *  name,
TSimicsInterface  iface 
)
inline

Member Function Documentation

◆ adapter() [1/2]

template<typename TSimicsInterface >
template<typename TBase , typename TInterface >
static SimicsLock< TInterface > simics::systemc::iface::SimicsAdapter< TSimicsInterface >::adapter ( conf_object_t *  obj)
inlinestaticprotected

◆ adapter() [2/2]

template<typename TSimicsInterface >
template<typename TBase , typename TInterface >
static SimicsLock< TInterface > simics::systemc::iface::SimicsAdapter< TSimicsInterface >::adapter ( conf_object_t *  obj,
conf_object_t *  obj_lock 
)
inlinestaticprotected

◆ adapterWithoutLocking()

template<typename TSimicsInterface >
template<typename TBase , typename TInterface >
static TInterface * simics::systemc::iface::SimicsAdapter< TSimicsInterface >::adapterWithoutLocking ( conf_object_t *  obj)
inlinestaticprotected

◆ cstruct()

template<typename TSimicsInterface >
const interface_t * simics::systemc::iface::SimicsAdapter< TSimicsInterface >::cstruct ( ) const
inlineoverride

◆ descriptionBase()

template<typename TSimicsInterface >
template<typename TBase , typename TInterface >
std::vector< std::string > simics::systemc::iface::SimicsAdapter< TSimicsInterface >::descriptionBase ( conf_object_t *  obj,
DescriptionType  type 
)
inlineprotected

◆ map_adapter()

template<typename TSimicsInterface >
bool simics::systemc::iface::SimicsAdapter< TSimicsInterface >::map_adapter ( ) const
inlineoverride

◆ name()

template<typename TSimicsInterface >
std::string simics::systemc::iface::SimicsAdapter< TSimicsInterface >::name ( ) const
inlineoverride

◆ set_map_adapter()

template<typename TSimicsInterface >
void simics::systemc::iface::SimicsAdapter< TSimicsInterface >::set_map_adapter ( bool  map)
inlineoverride

◆ set_simics_class()

template<typename TSimicsInterface >
void simics::systemc::iface::SimicsAdapter< TSimicsInterface >::set_simics_class ( conf_class_t *  conf_class)
inlineoverride

◆ simics_class()

template<typename TSimicsInterface >
conf_class_t * simics::systemc::iface::SimicsAdapter< TSimicsInterface >::simics_class ( ) const
inlineoverride

The documentation for this class was generated from the following file: