14#ifndef SIMICS_SYSTEMC_TOOLS_SC_TRANSACTION_TRACKER_TOOL_H
15#define SIMICS_SYSTEMC_TOOLS_SC_TRANSACTION_TRACKER_TOOL_H
17#include <simics/cc-api.h>
38 tlm::tlm_generic_payload *trans,
39 tlm::tlm_phase *phase,
40 sc_core::sc_time *time)
override;
43 tlm::tlm_generic_payload *trans,
44 tlm::tlm_phase *phase,
45 sc_core::sc_time *time,
46 tlm::tlm_sync_enum *ret)
override;
49 tlm::tlm_generic_payload *trans,
50 sc_core::sc_time *time)
override;
53 tlm::tlm_generic_payload *trans,
54 sc_core::sc_time *time)
override;
57 tlm::tlm_generic_payload *trans)
override;
60 tlm::tlm_generic_payload *trans,
61 unsigned int *ret)
override;
64 tlm::tlm_generic_payload *trans,
65 tlm::tlm_phase *phase,
66 sc_core::sc_time *time)
override;
69 tlm::tlm_generic_payload *trans,
70 tlm::tlm_phase *phase,
71 sc_core::sc_time *time,
72 tlm::tlm_sync_enum *ret)
override;
76 void allocate_extensions();
79 void handle_extension_pre(scla::ProxyInterface *proxy_iface,
80 tlm::tlm_generic_payload *trans);
82 void handle_extension_post(scla::ProxyInterface *proxy_iface,
83 tlm::tlm_generic_payload *trans);
85 typedef std::deque<TransactionTrackerExtension> extensions_t;
86 extensions_t extensions_;
88 typedef std::queue<TransactionTrackerExtension *> extensions_free_list_t;
89 extensions_free_list_t extensions_free_list_;