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