SystemC Library API Reference Manual
Reference documentation for the Simics SystemC Library.
 
Loading...
Searching...
No Matches
sc_trace_tool.h
Go to the documentation of this file.
1/*
2 © 2016 Intel Corporation
3
4 This software and the related documents are Intel copyrighted materials, and
5 your use of them is governed by the express license under which they were
6 provided to you ("License"). Unless the License provides otherwise, you may
7 not use, modify, copy, publish, distribute, disclose or transmit this software
8 or the related documents without Intel's prior written permission.
9
10 This software and the related documents are provided as is, with no express or
11 implied warranties, other than those that are expressly stated in the License.
12*/
13
14#ifndef SIMICS_SYSTEMC_TOOLS_SC_TRACE_TOOL_H
15#define SIMICS_SYSTEMC_TOOLS_SC_TRACE_TOOL_H
16
19
20#include <tlm>
21
22#include <vector>
23#include <string>
24
25namespace simics {
26namespace systemc {
27namespace tools {
28
29class ScTraceTool : public ScTool {
30 public:
31 explicit ScTraceTool(simics::ConfObjectRef o)
32 : ScTool(o), sc_timestamp_(false), process_internal_(false) {}
33 void triggered(scla::ProxyInterface *proxy,
34 const char *event_type,
35 const char *class_type,
36 void *object,
37 sc_core::sc_time *timestamp) override;
38 void process_state_change(scla::ProxyInterface *proxy,
39 const char *event_type,
40 const char *class_type,
41 void *object,
42 sc_core::sc_time *timestamp,
43 bool internal) override;
44 void fired(scla::ProxyInterface *proxy) override;
45 void signal_port_value_update(scla::ProxyInterface *proxy,
46 sc_core::sc_object *signal) override;
47 void nb_transport_fw_pre(scla::ProxyInterface *proxy,
48 tlm::tlm_generic_payload *trans,
49 tlm::tlm_phase *phase,
50 sc_core::sc_time *delay) override;
51 void nb_transport_fw_post(scla::ProxyInterface *proxy,
52 tlm::tlm_generic_payload *trans,
53 tlm::tlm_phase *phase,
54 sc_core::sc_time *delay,
55 tlm::tlm_sync_enum *ret) override;
56 void b_transport_pre(scla::ProxyInterface *proxy,
57 tlm::tlm_generic_payload *trans,
58 sc_core::sc_time *delay) override;
59 void b_transport_post(scla::ProxyInterface *proxy,
60 tlm::tlm_generic_payload *trans,
61 sc_core::sc_time *delay) override;
62 void get_direct_mem_ptr_pre(scla::ProxyInterface *proxy,
63 tlm::tlm_generic_payload *trans,
64 tlm::tlm_dmi *dmi_data) override;
65 void get_direct_mem_ptr_post(scla::ProxyInterface *proxy,
66 tlm::tlm_generic_payload *trans,
67 tlm::tlm_dmi *dmi_data,
68 bool *ret) override;
69 void transport_dbg_pre(scla::ProxyInterface *proxy,
70 tlm::tlm_generic_payload *trans) override;
71 void transport_dbg_post(scla::ProxyInterface *proxy,
72 tlm::tlm_generic_payload *trans,
73 unsigned int *ret) override;
74
75 void nb_transport_bw_pre(scla::ProxyInterface *proxy,
76 tlm::tlm_generic_payload *trans,
77 tlm::tlm_phase *phase,
78 sc_core::sc_time *delay) override;
79 void nb_transport_bw_post(scla::ProxyInterface *proxy,
80 tlm::tlm_generic_payload *trans,
81 tlm::tlm_phase *phase,
82 sc_core::sc_time *delay,
83 tlm::tlm_sync_enum *ret) override;
84 void invalidate_direct_mem_ptr_pre(scla::ProxyInterface *proxy,
85 uint64 *start_range,
86 uint64 *end_range) override;
87 void invalidate_direct_mem_ptr_post(scla::ProxyInterface *proxy,
88 uint64 *start_range,
89 uint64 *end_range) override;
90
91 void set_sc_timestamp(const bool &val);
92 bool sc_timestamp() const;
93 void set_process_internal(const bool &val);
94 bool process_internal() const;
95 static void initialize(const std::string &module_name);
96
97 protected:
98 virtual std::string event_header();
99 virtual std::string process_header();
100 virtual std::string signal_header();
101 virtual std::string signal_port_header();
102 virtual std::string tlm_header();
103 virtual std::string header(scla::ProxyInterface *proxy,
104 bool is_request, std::string type);
107};
108
109} // namespace tools
110} // namespace systemc
111} // namespace simics
112
113#endif
Definition: sc_tool.h:49
Definition: sc_trace_tool.h:29
virtual std::string event_header()
void get_direct_mem_ptr_post(scla::ProxyInterface *proxy, tlm::tlm_generic_payload *trans, tlm::tlm_dmi *dmi_data, bool *ret) override
void signal_port_value_update(scla::ProxyInterface *proxy, sc_core::sc_object *signal) override
ScTraceTool(simics::ConfObjectRef o)
Definition: sc_trace_tool.h:31
void set_sc_timestamp(const bool &val)
void transport_dbg_post(scla::ProxyInterface *proxy, tlm::tlm_generic_payload *trans, unsigned int *ret) override
void invalidate_direct_mem_ptr_pre(scla::ProxyInterface *proxy, uint64 *start_range, uint64 *end_range) override
void fired(scla::ProxyInterface *proxy) override
virtual std::string process_header()
bool sc_timestamp_
Definition: sc_trace_tool.h:105
void triggered(scla::ProxyInterface *proxy, const char *event_type, const char *class_type, void *object, sc_core::sc_time *timestamp) override
void get_direct_mem_ptr_pre(scla::ProxyInterface *proxy, tlm::tlm_generic_payload *trans, tlm::tlm_dmi *dmi_data) override
virtual std::string signal_header()
virtual std::string header(scla::ProxyInterface *proxy, bool is_request, std::string type)
void nb_transport_bw_post(scla::ProxyInterface *proxy, tlm::tlm_generic_payload *trans, tlm::tlm_phase *phase, sc_core::sc_time *delay, tlm::tlm_sync_enum *ret) override
static void initialize(const std::string &module_name)
void nb_transport_fw_pre(scla::ProxyInterface *proxy, tlm::tlm_generic_payload *trans, tlm::tlm_phase *phase, sc_core::sc_time *delay) override
void b_transport_pre(scla::ProxyInterface *proxy, tlm::tlm_generic_payload *trans, sc_core::sc_time *delay) override
bool process_internal_
Definition: sc_trace_tool.h:106
void nb_transport_fw_post(scla::ProxyInterface *proxy, tlm::tlm_generic_payload *trans, tlm::tlm_phase *phase, sc_core::sc_time *delay, tlm::tlm_sync_enum *ret) override
void set_process_internal(const bool &val)
void b_transport_post(scla::ProxyInterface *proxy, tlm::tlm_generic_payload *trans, sc_core::sc_time *delay) override
void transport_dbg_pre(scla::ProxyInterface *proxy, tlm::tlm_generic_payload *trans) override
void nb_transport_bw_pre(scla::ProxyInterface *proxy, tlm::tlm_generic_payload *trans, tlm::tlm_phase *phase, sc_core::sc_time *delay) override
virtual std::string tlm_header()
void process_state_change(scla::ProxyInterface *proxy, const char *event_type, const char *class_type, void *object, sc_core::sc_time *timestamp, bool internal) override
virtual std::string signal_port_header()
void invalidate_direct_mem_ptr_post(scla::ProxyInterface *proxy, uint64 *start_range, uint64 *end_range) override
Definition: adapter.h:79