16#ifndef SIMICS_SYSTEMC_TLM2SIMICS_GASKET_CLASS_H
17#define SIMICS_SYSTEMC_TLM2SIMICS_GASKET_CLASS_H
22#include <simics/simulator/sim-get-class.h>
35template<
class TGasket>
42 SIM_set_object_configured(obj());
45 simulation_ref_.require();
56 if (SIM_clear_exception() == SimExc_No_Exception) {
60 auto new_cls = make_class<GasketClass>(
62 "model of SystemC tlm2simics gasket class",
63 "Class for binding Simics interface to SystemC Gasket.");
65 new_cls->add(Attribute(
"initiator",
"s",
66 "Name of the initiator socket the gasket"
70 new_cls->add(Attribute(
"simulation",
"o",
71 "Simics object implementing the SystemC"
72 " Simulation interface.",
75 new_cls->add(Attribute(
"object",
"o|n",
76 "Simics object implementing the corresponding"
77 " interface of this gasket.",
80 return *new_cls.get();
84 std::string socket_name_;
85 ConfObjectRef simulation_ref_;
Provides get/set functionality for a connector attribute, typically registered by using the Connector...
Definition: connector.h:41
Definition: gasket_class_interface.h:28
Definition: sc_version_interface.h:27
Interface to the SystemC simulation.
Definition: simulation_interface.h:27
virtual ConfObjectRef simics_object() const =0
Definition: gasket_class.h:37
virtual void createGasket(iface::SimulationInterface *simulation)
Definition: gasket_class.h:50
virtual void finalize()
Definition: gasket_class.h:40
static conf_class_t * registerGasketClass(const char *class_name)
Definition: gasket_class.h:54
virtual iface::ScVersionInterface * version()
Definition: gasket_class.h:47
GasketClass(ConfObjectRef o)
Definition: gasket_class.h:39
GasketInterface::Ptr createGasketByName(std::string socket_name, const simics::ConfObjectRef &simics_obj)
conf_class_t * SIM_get_class(const char *NOTNULL name)
Definition: pci_bus_interface.h:24