16#ifndef SIMICS_SYSTEMC_IFACE_SC_GASKET_INFO_SIMICS_ADAPTER_H
17#define SIMICS_SYSTEMC_IFACE_SC_GASKET_INFO_SIMICS_ADAPTER_H
19#include <simics/base/attr-value.h>
24#include <systemc-interfaces.h>
34template<
typename TBase,
typename TInterface = ScGasketInfoInterface>
39 SC_GASKET_INFO_INTERFACE, init_iface()) {
56 const std::vector<std::vector<std::string> > *v) {
57 attr_value_t l1 = SIM_alloc_attr_list(v->size());
59 for (
auto i = v->begin(); i != v->end(); ++i) {
60 attr_value_t l2 = SIM_alloc_attr_list(i->size());
62 SIM_attr_list_set_item(&l1, lidx1++, l2);
63 for (
auto j = i->begin(); j != i->end(); ++j) {
64 SIM_attr_list_set_item(&l2, lidx2++,
65 SIM_make_attr_string(j->c_str()));
72 std::vector<std::string> description(conf_object_t *obj,
74 return descriptionBase<TBase, TInterface>(obj, type);
76 sc_gasket_info_interface_t init_iface() {
77 sc_gasket_info_interface_t iface = {};
78 iface.simics2tlm = simics2tlm;
79 iface.tlm2simics = tlm2simics;
80 iface.simics2systemc = simics2systemc;
81 iface.systemc2simics = systemc2simics;
Definition: sc_gasket_info_simics_adapter.h:36
ScGasketInfoSimicsAdapter()
Definition: sc_gasket_info_simics_adapter.h:38
static attr_value_t vec2list(const std::vector< std::vector< std::string > > *v)
Definition: sc_gasket_info_simics_adapter.h:55
static attr_value_t tlm2simics(conf_object_t *obj)
Definition: sc_gasket_info_simics_adapter.h:46
static attr_value_t simics2tlm(conf_object_t *obj)
Definition: sc_gasket_info_simics_adapter.h:43
static attr_value_t systemc2simics(conf_object_t *obj)
Definition: sc_gasket_info_simics_adapter.h:52
static attr_value_t simics2systemc(conf_object_t *obj)
Definition: sc_gasket_info_simics_adapter.h:49
Base class for mapping Simics interface to a C++ interface.
Definition: simics_adapter.h:47
DescriptionType
Definition: description_interface.h:25
Definition: pci_bus_interface.h:24