SystemC Library API Reference Manual
Reference documentation for the Simics SystemC Library.
 
Loading...
Searching...
No Matches
simics::systemc::iface::Extension< TExtension, TInterface > Class Template Referenceabstract

Base class for TLM2 extension, responsible for marshal/unmarshal of a Simics interface. More...

#include <extension.h>

Inheritance diagram for simics::systemc::iface::Extension< TExtension, TInterface >:

Public Member Functions

 Extension ()
 
void init (ExtensionSenderInterface *sender, tlm::tlm_generic_payload *payload)
 Deprecated, use the init(ExtensionSenderInterface *sender) instead.
 
void init (ExtensionSenderInterface *sender)
 
void send ()
 
void method_call (TInterface *device)
 
void method_call_ignore ()
 
types::AnyType method_type ()
 
bool valid ()
 
virtual tlm::tlm_extension_base * clone () const
 
virtual void copy_from (tlm::tlm_extension_base const &extension)
 
virtual ~Extension ()
 

Static Public Member Functions

static ReceiverInterfacecreateReceiver (TInterface *device)
 
static ReceiverInterfacecreateIgnoreReceiver ()
 

Protected Member Functions

virtual void call (TInterface *device)=0
 

Protected Attributes

ExtensionSenderInterfacesender_
 
types::AnyType method_
 
std::vector< types::AnyTypemethod_input_
 
types::AnyType method_return_
 
types::AnyType method_return_error_
 
int method_call_count_
 
bool suppress_error_
 
bool valid_
 

Detailed Description

template<typename TExtension, typename TInterface>
class simics::systemc::iface::Extension< TExtension, TInterface >

Base class for TLM2 extension, responsible for marshal/unmarshal of a Simics interface.

The interface specific sub-class implements the marshal/unmarshal using the functionality of the base class. Most important is the send() and call() methods.

Constructor & Destructor Documentation

◆ Extension()

template<typename TExtension , typename TInterface >
simics::systemc::iface::Extension< TExtension, TInterface >::Extension ( )
inline

◆ ~Extension()

template<typename TExtension , typename TInterface >
virtual simics::systemc::iface::Extension< TExtension, TInterface >::~Extension ( )
inlinevirtual

Member Function Documentation

◆ call()

◆ clone()

template<typename TExtension , typename TInterface >
virtual tlm::tlm_extension_base * simics::systemc::iface::Extension< TExtension, TInterface >::clone ( ) const
inlinevirtual

◆ copy_from()

template<typename TExtension , typename TInterface >
virtual void simics::systemc::iface::Extension< TExtension, TInterface >::copy_from ( tlm::tlm_extension_base const &  extension)
inlinevirtual

◆ createIgnoreReceiver()

template<typename TExtension , typename TInterface >
static ReceiverInterface * simics::systemc::iface::Extension< TExtension, TInterface >::createIgnoreReceiver ( )
inlinestatic

◆ createReceiver()

template<typename TExtension , typename TInterface >
static ReceiverInterface * simics::systemc::iface::Extension< TExtension, TInterface >::createReceiver ( TInterface *  device)
inlinestatic

◆ init() [1/2]

template<typename TExtension , typename TInterface >
void simics::systemc::iface::Extension< TExtension, TInterface >::init ( ExtensionSenderInterface sender)
inline

◆ init() [2/2]

template<typename TExtension , typename TInterface >
void simics::systemc::iface::Extension< TExtension, TInterface >::init ( ExtensionSenderInterface sender,
tlm::tlm_generic_payload *  payload 
)
inline

Deprecated, use the init(ExtensionSenderInterface *sender) instead.

◆ method_call()

template<typename TExtension , typename TInterface >
void simics::systemc::iface::Extension< TExtension, TInterface >::method_call ( TInterface *  device)
inline

◆ method_call_ignore()

template<typename TExtension , typename TInterface >
void simics::systemc::iface::Extension< TExtension, TInterface >::method_call_ignore ( )
inline

◆ method_type()

template<typename TExtension , typename TInterface >
types::AnyType simics::systemc::iface::Extension< TExtension, TInterface >::method_type ( )
inline

◆ send()

template<typename TExtension , typename TInterface >
void simics::systemc::iface::Extension< TExtension, TInterface >::send ( )
inline

◆ valid()

template<typename TExtension , typename TInterface >
bool simics::systemc::iface::Extension< TExtension, TInterface >::valid ( )
inline

Member Data Documentation

◆ method_

template<typename TExtension , typename TInterface >
types::AnyType simics::systemc::iface::Extension< TExtension, TInterface >::method_
protected

◆ method_call_count_

template<typename TExtension , typename TInterface >
int simics::systemc::iface::Extension< TExtension, TInterface >::method_call_count_
protected

◆ method_input_

template<typename TExtension , typename TInterface >
std::vector<types::AnyType> simics::systemc::iface::Extension< TExtension, TInterface >::method_input_
protected

◆ method_return_

template<typename TExtension , typename TInterface >
types::AnyType simics::systemc::iface::Extension< TExtension, TInterface >::method_return_
protected

◆ method_return_error_

template<typename TExtension , typename TInterface >
types::AnyType simics::systemc::iface::Extension< TExtension, TInterface >::method_return_error_
protected

◆ sender_

template<typename TExtension , typename TInterface >
ExtensionSenderInterface* simics::systemc::iface::Extension< TExtension, TInterface >::sender_
protected

◆ suppress_error_

template<typename TExtension , typename TInterface >
bool simics::systemc::iface::Extension< TExtension, TInterface >::suppress_error_
protected

◆ valid_

template<typename TExtension , typename TInterface >
bool simics::systemc::iface::Extension< TExtension, TInterface >::valid_
protected

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