18#include <tlm/scc/lwtr/lwtr4tlm2_extension_registry.h>
19#include <tlm/scc/tlm_id.h>
22template <
class Archive>
void record(Archive& ar, tlm::scc::tlm_id_extension
const& e) { ar& field(
"uid", e.id); }
29const std::array<std::string, 3> cmd2char{{
"READ",
"WRITE",
"IGNORE"}};
30const std::array<std::string, 7> resp2char{
31 {
"OK",
"INCOMPLETE",
"GENERIC_ERROR",
"ADDRESS_ERROR",
"COMMAND_ERROR",
"BURST_ERROR",
"BYTE_ENABLE_ERROR"}};
32const std::array<std::string, 3> gp_option2char{{
"MIN_PAYLOAD",
"FULL_PAYLOAD",
"FULL_PAYLOAD_ACCEPTED"}};
33const std::array<std::string, 5> phase2char{{
"UNINITIALIZED_PHASE",
"BEGIN_REQ",
"END_REQ",
"BEGIN_RESP",
"END_RESP"}};
34const std::array<std::string, 4> dmi2char{{
"DMI_ACCESS_NONE",
"DMI_ACCESS_READ",
"DMI_ACCESS_WRITE",
"DMI_ACCESS_READ_WRITE"}};
35const std::array<std::string, 3> sync2char{{
"ACCEPTED",
"UPDATED",
"COMPLETED"}};
40 void recordBeginTx(::lwtr::tx_handle& handle, tlm::tlm_base_protocol_types::tlm_payload_type& trans)
override {
42 handle.record_attribute(
"trans", *ext);
44 void recordEndTx(::lwtr::tx_handle& handle, tlm::tlm_base_protocol_types::tlm_payload_type& trans)
override {}
49__attribute__((constructor))
51bool register_extensions() {
53 lwtr4tlm2_extension_registry<tlm::tlm_base_protocol_types>::inst().register_ext_rec(ext.ID,
new tlm_id_ext_recording());
56bool registered = register_extensions();
The TLM transaction extensions recorder interface.
SCC SCV4TLM classes and functions.