Go to the documentation of this file.
49 struct ControlConversionRegister
51 ControlConversionRegister()
63 pkt->req->setFlags(Request::PRIVILEGED);
65 pkt->req->clearFlags(Request::PRIVILEGED);
69 pkt->req->setFlags(Request::SECURE);
71 pkt->req->clearFlags(Request::SECURE);
75 pkt->req->setFlags(Request::INST_FETCH);
77 pkt->req->clearFlags(Request::INST_FETCH);
83 pkt->req->setStreamId(control_ex->getStreamId().value());
86 pkt->req->setSubstreamId(
87 control_ex->getSubstreamId().value());
103 if (pkt->
req->hasStreamId()) {
104 control_ex->setStreamId(pkt->req->streamId());
106 if (pkt->
req->hasSubstreamId()) {
107 control_ex->setSubstreamId(pkt->req->substreamId());
154 std::shared_ptr<gem5::AtomicOpFunctor>
o,
bool r)
155 :
op(
o), returnRequired(
r)
200 : privileged(false), secure(false), instruction(false), qos(0)
202 [[maybe_unused]]
static ControlConversionRegister *conversion_register =
203 new ControlConversionRegister();
288 std::optional<uint32_t>
306 std::optional<uint32_t>
tlm_extension_base * clone() const override
void setInstruction(bool i)
bool isInstruction() const
void addPacketToPayloadConversionStep(PacketToPayloadConversionStep step)
Notify the Gem5ToTlm bridge that we need an extra step to properly convert a gem5 packet to tlm paylo...
RequestPtr req
A pointer to the original request.
tlm_extension_base * clone() const override
uint8_t qosValue() const
QoS Value getter Returns 0 if QoS value was never set (constructor default).
std::optional< uint32_t > getStreamId() const
Gem5Extension(gem5::PacketPtr p)
gem5::PacketPtr getPacket()
std::optional< uint32_t > getSubstreamId() const
void setStreamId(std::optional< uint32_t > s)
tlm_extension_base * clone() const override
AtomicExtension(std::shared_ptr< gem5::AtomicOpFunctor > o, bool r)
constexpr RegId o(int index)
std::optional< uint32_t > stream_id
std::optional< uint32_t > substream_id
bool isPrivileged() const
A Packet is used to encapsulate a transfer between two objects in the memory system (e....
void get_extension(T *&ext) const
static AtomicExtension & getExtension(const tlm::tlm_generic_payload *payload)
void addPayloadToPacketConversionStep(PayloadToPacketConversionStep step)
Notify the Tlm2Gem5 bridge that we need an extra step to properly convert a tlm payload to gem5 packe...
bool isReturnRequired() const
bool hasSubstreamId() const
static Gem5Extension & getExtension(const tlm::tlm_generic_payload *payload)
void setPrivileged(bool p)
void copy_from(const tlm_extension_base &ext) override
gem5::AtomicOpFunctor * getAtomicOpFunctor() const
void setSubstreamId(std::optional< uint32_t > s)
std::shared_ptr< gem5::AtomicOpFunctor > op
Reference material can be found at the JEDEC website: UFS standard http://www.jedec....
void copy_from(const tlm_extension_base &ext) override
void copy_from(const tlm_extension_base &ext) override
static ControlExtension & getExtension(const tlm::tlm_generic_payload *payload)
Generated on Sun Jul 30 2023 01:57:03 for gem5 by doxygen 1.8.17