File axi_tlm_ext.h
File List > axi > axi_tlm_ext.h
Go to the documentation of this file
#pragma once
#include <ARM/TLM/arm_axi4.h>
class axi_tlm_extension : public tlm::tlm_extension<axi_tlm_extension> {
public:
ARM::AXI::Payload* arm_payload_;
explicit axi_tlm_extension(ARM::AXI::Payload* arm_payload = nullptr)
: arm_payload_(arm_payload) {
if (arm_payload_) arm_payload_->ref();
}
virtual ~axi_tlm_extension() {
if (arm_payload_) arm_payload_->unref();
}
virtual tlm::tlm_extension_base* clone() const {
return new axi_tlm_extension(arm_payload_);
}
virtual void copy_from(const tlm_extension_base& extension) {
if (arm_payload_) arm_payload_->unref();
arm_payload_ =
static_cast<axi_tlm_extension const&>(extension).arm_payload_;
arm_payload_->ref();
}
};