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 virtual void triggered(scla::ProxyInterface *proxy,
36 const char *event_type,
37 const char *class_type,
38 void *object,
39 sc_core::sc_time *timestamp);
40 virtual 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);
46 virtual void fired(scla::ProxyInterface *proxy);
47 virtual void signal_port_value_update(scla::ProxyInterface *proxy,
48 sc_core::sc_object *signal);
49 virtual 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);
53 virtual 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);
58 virtual void b_transport_pre(scla::ProxyInterface *proxy,
59 tlm::tlm_generic_payload *trans,
60 sc_core::sc_time *delay);
61 virtual void b_transport_post(scla::ProxyInterface *proxy,
62 tlm::tlm_generic_payload *trans,
63 sc_core::sc_time *delay);
64 virtual void get_direct_mem_ptr_pre(scla::ProxyInterface *proxy,
65 tlm::tlm_generic_payload *trans,
66 tlm::tlm_dmi *dmi_data);
67 virtual void get_direct_mem_ptr_post(scla::ProxyInterface *proxy,
68 tlm::tlm_generic_payload *trans,
69 tlm::tlm_dmi *dmi_data,
70 bool *ret);
71 virtual void transport_dbg_pre(scla::ProxyInterface *proxy,
72 tlm::tlm_generic_payload *trans);
73 virtual void transport_dbg_post(scla::ProxyInterface *proxy,
74 tlm::tlm_generic_payload *trans,
75 unsigned int *ret);
76
77 virtual 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);
81 virtual 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);
86 virtual void invalidate_direct_mem_ptr_pre(scla::ProxyInterface *proxy,
87 uint64 *start_range,
88 uint64 *end_range);
89 virtual void invalidate_direct_mem_ptr_post(scla::ProxyInterface *proxy,
90 uint64 *start_range,
91 uint64 *end_range);
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, bool is_request,
106 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()
ScTraceTool(simics::ConfObjectRef o)
Definition: sc_trace_tool.h:33
void set_sc_timestamp(const bool &val)
virtual 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)
virtual std::string process_header()
bool sc_timestamp_
Definition: sc_trace_tool.h:107
virtual void get_direct_mem_ptr_pre(scla::ProxyInterface *proxy, tlm::tlm_generic_payload *trans, tlm::tlm_dmi *dmi_data)
virtual void triggered(scla::ProxyInterface *proxy, const char *event_type, const char *class_type, void *object, sc_core::sc_time *timestamp)
virtual void process_state_change(scla::ProxyInterface *proxy, const char *event_type, const char *class_type, void *object, sc_core::sc_time *timestamp, bool internal)
virtual void b_transport_pre(scla::ProxyInterface *proxy, tlm::tlm_generic_payload *trans, sc_core::sc_time *delay)
virtual void invalidate_direct_mem_ptr_pre(scla::ProxyInterface *proxy, uint64 *start_range, uint64 *end_range)
virtual void transport_dbg_pre(scla::ProxyInterface *proxy, tlm::tlm_generic_payload *trans)
virtual std::string signal_header()
virtual void nb_transport_fw_pre(scla::ProxyInterface *proxy, tlm::tlm_generic_payload *trans, tlm::tlm_phase *phase, sc_core::sc_time *delay)
virtual std::string header(scla::ProxyInterface *proxy, bool is_request, std::string type)
virtual void nb_transport_bw_pre(scla::ProxyInterface *proxy, tlm::tlm_generic_payload *trans, tlm::tlm_phase *phase, sc_core::sc_time *delay)
virtual void get_direct_mem_ptr_post(scla::ProxyInterface *proxy, tlm::tlm_generic_payload *trans, tlm::tlm_dmi *dmi_data, bool *ret)
static void initialize(const std::string &module_name)
virtual void invalidate_direct_mem_ptr_post(scla::ProxyInterface *proxy, uint64 *start_range, uint64 *end_range)
virtual void signal_port_value_update(scla::ProxyInterface *proxy, sc_core::sc_object *signal)
virtual void fired(scla::ProxyInterface *proxy)
bool process_internal_
Definition: sc_trace_tool.h:108
virtual 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)
void set_process_internal(const bool &val)
virtual void transport_dbg_post(scla::ProxyInterface *proxy, tlm::tlm_generic_payload *trans, unsigned int *ret)
virtual void b_transport_post(scla::ProxyInterface *proxy, tlm::tlm_generic_payload *trans, sc_core::sc_time *delay)
virtual std::string tlm_header()
virtual std::string signal_port_header()
Definition: pci_bus_interface.h:24