16#ifndef SIMICS_SYSTEMC_TOOLS_SC_TOOL_H
17#define SIMICS_SYSTEMC_TOOLS_SC_TOOL_H
19#include <simics/cc-api.h>
20#include <simics/simulator-iface/instrumentation-tool.h>
37namespace scla = scl::awareness;
38namespace scli = scl::iface::instrumentation;
44class ScTool :
public simics::ConfObject,
45 public scli::EventActionInterface,
46 public scli::ProcessActionInterface,
47 public scli::SignalActionInterface,
48 public scli::SignalPortActionInterface,
49 public scli::TlmFwActionInterface,
50 public scli::TlmBwActionInterface,
51 public scli::ToolInterface {
53 explicit ScTool(simics::ConfObjectRef o)
55 virtual conf_object_t *
connect(conf_object_t *controller,
62 std::string name, std::string long_name, std::string documentation);
67 const char *event_type,
68 const char *class_type,
70 sc_core::sc_time *timestamp) {}
74 const char *event_type,
75 const char *class_type,
77 sc_core::sc_time *timestamp,
81 virtual void fired(scla::ProxyInterface *proxy) {}
85 sc_core::sc_object *signal) {}
89 tlm::tlm_generic_payload *trans,
90 tlm::tlm_phase *phase,
91 sc_core::sc_time *delay) {}
93 tlm::tlm_generic_payload *trans,
94 tlm::tlm_phase *phase,
95 sc_core::sc_time *delay,
96 tlm::tlm_sync_enum *ret) {}
98 tlm::tlm_generic_payload *trans,
99 sc_core::sc_time *delay) {}
101 tlm::tlm_generic_payload *trans,
102 sc_core::sc_time *delay) {}
104 tlm::tlm_generic_payload *trans,
105 tlm::tlm_dmi *dmi_data) {}
107 tlm::tlm_generic_payload *trans,
108 tlm::tlm_dmi *dmi_data,
111 tlm::tlm_generic_payload *trans) {}
113 tlm::tlm_generic_payload *trans,
114 unsigned int *ret) {}
118 tlm::tlm_generic_payload *trans,
119 tlm::tlm_phase *phase,
120 sc_core::sc_time *delay) {}
122 tlm::tlm_generic_payload *trans,
123 tlm::tlm_phase *phase,
124 sc_core::sc_time *delay,
125 tlm::tlm_sync_enum *ret) {}
128 uint64 *end_range) {}
131 uint64 *end_range) {}
136 std::string name, std::string long_name, std::string documentation) {
137 auto cls = simics::make_class<T>(name, long_name,
139 Sim_Class_Kind_Pseudo);
140 cls->add(scl::iface::createAdapter<scli::ToolSimicsAdapter<T>>());
Definition: pci_bus_interface.h:24