16#ifndef SIMICS_SYSTEMC_IFACE_INJECTION_SC_TLM_BW_TRANSPORT_SIMICS_ADAPTER_H
17#define SIMICS_SYSTEMC_IFACE_INJECTION_SC_TLM_BW_TRANSPORT_SIMICS_ADAPTER_H
22#include <systemc-interfaces.h>
34template<
typename TBase,
35 typename TYPES = tlm::tlm_base_protocol_types,
36 typename TInterface = tlm::tlm_bw_transport_if<TYPES> >
43 SC_TLM_BW_TRANSPORT_INTERFACE, init_iface()) {
47 ::uint64 phase, ::uint64 t) {
49 typename TYPES::tlm_phase_type p;
50 p =
static_cast<typename TYPES::tlm_phase_type
>(phase);
51 sc_core::sc_time t2 = sc_core::sc_time::from_value(t);
55 return SC_TLM_ATTR_ERROR;
57 tlm::tlm_sync_enum ret =
58 adapter<TBase, TInterface>(obj)->nb_transport_bw(*payload, p, t2);
60 return static_cast<sc_tlm_sync_enum_t
>(ret);
65 return adapter<TBase, TInterface>(obj)->invalidate_direct_mem_ptr(
66 start_range, end_range);
70 std::vector<std::string> description(conf_object_t *obj,
72 return descriptionBase<TBase, TInterface>(obj, type);
74 sc_tlm_bw_transport_interface_t init_iface() {
75 sc_tlm_bw_transport_interface_t iface = {};
Base class for mapping Simics interface to a C++ interface.
Definition: simics_adapter.h:47
Definition: sc_tlm_bw_transport_simics_adapter.h:38
static void invalidate_direct_mem_ptr(conf_object_t *obj, ::uint64 start_range, ::uint64 end_range)
Definition: sc_tlm_bw_transport_simics_adapter.h:62
ScTlmBwTransportSimicsAdapter()
Definition: sc_tlm_bw_transport_simics_adapter.h:41
TYPES::tlm_payload_type transaction_type
Definition: sc_tlm_bw_transport_simics_adapter.h:40
static sc_tlm_sync_enum_t nb_transport_bw(conf_object_t *obj, attr_value_t trans, ::uint64 phase, ::uint64 t)
Definition: sc_tlm_bw_transport_simics_adapter.h:45
Definition: inject_registry.h:37
TPAYLOAD * attrToPayload(conf_object_t *obj, attr_value_t *attr)
Definition: inject_registry.h:39
DescriptionType
Definition: description_interface.h:25
Definition: pci_bus_interface.h:24