16#ifndef SIMICS_SYSTEMC_IFACE_SC_PORT_SIMICS_ADAPTER_H
17#define SIMICS_SYSTEMC_IFACE_SC_PORT_SIMICS_ADAPTER_H
22#include <systemc-interfaces.h>
32template<
typename TBase,
typename TInterface = ScPortInterface>
36 SC_PORT_INTERFACE, init_iface()) {
45 return adapter<TBase, TInterface>(obj)->if_typename();
48 return adapter<TBase, TInterface>(obj)->max_number_of_proxies();
52 static attr_value_t stl2simics(std::vector<conf_object_t *> proxies) {
53 attr_value_t list = SIM_alloc_attr_list(proxies.size());
54 for (
unsigned i = 0; i < proxies.size(); ++i)
55 SIM_attr_list_set_item(&list, i,
56 SIM_make_attr_object(proxies[i]));
60 std::vector<std::string> description(conf_object_t *obj,
62 return descriptionBase<TBase, TInterface>(obj, type);
64 sc_port_interface_t init_iface() {
65 sc_port_interface_t iface = {};
Definition: sc_port_simics_adapter.h:33
static attr_value_t port_to_proxies(conf_object_t *obj)
Definition: sc_port_simics_adapter.h:40
static const char * if_typename(conf_object_t *obj)
Definition: sc_port_simics_adapter.h:44
static int max_number_of_proxies(conf_object_t *obj)
Definition: sc_port_simics_adapter.h:47
ScPortSimicsAdapter()
Definition: sc_port_simics_adapter.h:35
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