gem5 v25.0.0.1
Loading...
Searching...
No Matches
gem5::ruby::RubyRequest Class Reference

#include <RubyRequest.hh>

Inheritance diagram for gem5::ruby::RubyRequest:
gem5::ruby::Message

Public Member Functions

 RubyRequest (Tick curTime, int block_size, RubySystem *rs, uint64_t _paddr, int _len, uint64_t _pc, RubyRequestType _type, RubyAccessMode _access_mode, PacketPtr _pkt, PrefetchBit _pb=PrefetchBit_No, ContextID _proc_id=100, ContextID _core_id=99)
 RubyRequest (Tick curTime, int block_size, RubySystem *rs, uint64_t _pc, RubyRequestType _type, RubyAccessMode _access_mode, PacketPtr _pkt, ContextID _proc_id, ContextID _core_id)
 RubyRequest for memory management commands.
 RubyRequest (Tick curTime, int block_size, RubySystem *rs, uint64_t _paddr, int _len, uint64_t _pc, RubyRequestType _type, RubyAccessMode _access_mode, PacketPtr _pkt, PrefetchBit _pb, unsigned _proc_id, unsigned _core_id, int _wm_size, std::vector< bool > &_wm_mask, DataBlock &_Data, uint64_t _instSeqNum=0)
 RubyRequest (Tick curTime, int block_size, RubySystem *rs, uint64_t _paddr, int _len, uint64_t _pc, RubyRequestType _type, RubyAccessMode _access_mode, PacketPtr _pkt, PrefetchBit _pb, unsigned _proc_id, unsigned _core_id, int _wm_size, std::vector< bool > &_wm_mask, DataBlock &_Data, std::vector< std::pair< int, AtomicOpFunctor * > > _atomicOps, uint64_t _instSeqNum=0)
 RubyRequest (Tick curTime, int block_size, RubySystem *rs)
MsgPtr clone () const
Addr getLineAddress () const
Addr getPhysicalAddress () const
const RubyRequestType & getType () const
Addr getProgramCounter () const
const RubyAccessMode & getAccessMode () const
const int & getSize () const
const PrefetchBit & getPrefetch () const
RequestPtr getRequestPtr () const
void setWriteMask (uint32_t offset, uint32_t len, std::vector< std::pair< int, AtomicOpFunctor * > > atomicOps)
void print (std::ostream &out) const
bool functionalRead (Packet *pkt)
 The two functions below are used for reading / writing the message functionally.
bool functionalRead (Packet *pkt, WriteMask &mask)
bool functionalWrite (Packet *pkt)
Public Member Functions inherited from gem5::ruby::Message
 Message (Tick curTime, int block_size, const RubySystem *rs)
 Message (const Message &other)=default
virtual ~Message ()
virtual const MessageSizeType & getMessageSize () const
virtual MessageSizeType & getMessageSize ()
void updateDelayedTicks (Tick curTime)
 Update the delay this message has experienced so far.
Tick getDelayedTicks () const
void setLastEnqueueTime (const Tick &time)
Tick getLastEnqueueTime () const
Tick getTime () const
void setMsgCounter (uint64_t c)
uint64_t getMsgCounter () const
virtual const NetDest & getDestination () const
virtual NetDest & getDestination ()
int getIncomingLink () const
void setIncomingLink (int link)
int getVnet () const
void setVnet (int net)

Public Attributes

Addr m_PhysicalAddress
Addr m_LineAddress
RubyRequestType m_Type
Addr m_ProgramCounter
RubyAccessMode m_AccessMode
int m_Size
PrefetchBit m_Prefetch
PacketPtr m_pkt
ContextID m_contextId
WriteMask m_writeMask
DataBlock m_WTData
int m_wfid
uint64_t m_instSeqNum
bool m_htmFromTransaction
uint64_t m_htmTransactionUid
bool m_isTlbi
Addr m_tlbiTransactionUid
bool m_isGLCSet
bool m_isSLCSet
bool m_isSecure

Additional Inherited Members

Protected Attributes inherited from gem5::ruby::Message
int m_block_size = 0

Detailed Description

Definition at line 61 of file RubyRequest.hh.

Constructor & Destructor Documentation

◆ RubyRequest() [1/5]

gem5::ruby::RubyRequest::RubyRequest ( Tick curTime,
int block_size,
RubySystem * rs,
uint64_t _paddr,
int _len,
uint64_t _pc,
RubyRequestType _type,
RubyAccessMode _access_mode,
PacketPtr _pkt,
PrefetchBit _pb = PrefetchBit_No,
ContextID _proc_id = 100,
ContextID _core_id = 99 )
inline

◆ RubyRequest() [2/5]

gem5::ruby::RubyRequest::RubyRequest ( Tick curTime,
int block_size,
RubySystem * rs,
uint64_t _pc,
RubyRequestType _type,
RubyAccessMode _access_mode,
PacketPtr _pkt,
ContextID _proc_id,
ContextID _core_id )
inline

◆ RubyRequest() [3/5]

gem5::ruby::RubyRequest::RubyRequest ( Tick curTime,
int block_size,
RubySystem * rs,
uint64_t _paddr,
int _len,
uint64_t _pc,
RubyRequestType _type,
RubyAccessMode _access_mode,
PacketPtr _pkt,
PrefetchBit _pb,
unsigned _proc_id,
unsigned _core_id,
int _wm_size,
std::vector< bool > & _wm_mask,
DataBlock & _Data,
uint64_t _instSeqNum = 0 )
inline

◆ RubyRequest() [4/5]

gem5::ruby::RubyRequest::RubyRequest ( Tick curTime,
int block_size,
RubySystem * rs,
uint64_t _paddr,
int _len,
uint64_t _pc,
RubyRequestType _type,
RubyAccessMode _access_mode,
PacketPtr _pkt,
PrefetchBit _pb,
unsigned _proc_id,
unsigned _core_id,
int _wm_size,
std::vector< bool > & _wm_mask,
DataBlock & _Data,
std::vector< std::pair< int, AtomicOpFunctor * > > _atomicOps,
uint64_t _instSeqNum = 0 )
inline

◆ RubyRequest() [5/5]

gem5::ruby::RubyRequest::RubyRequest ( Tick curTime,
int block_size,
RubySystem * rs )
inline

Member Function Documentation

◆ clone()

MsgPtr gem5::ruby::RubyRequest::clone ( ) const
inlinevirtual

Implements gem5::ruby::Message.

Definition at line 235 of file RubyRequest.hh.

References RubyRequest().

◆ functionalRead() [1/2]

bool gem5::ruby::RubyRequest::functionalRead ( Packet * pkt)
virtual

The two functions below are used for reading / writing the message functionally.

The methods return true if the address in the packet matches the address / address range in the message. Each message class that can be potentially searched for the address needs to implement these methods.

Reimplemented from gem5::ruby::Message.

Definition at line 71 of file RubyRequest.cc.

◆ functionalRead() [2/2]

bool gem5::ruby::RubyRequest::functionalRead ( Packet * pkt,
WriteMask & mask )
virtual

Reimplemented from gem5::ruby::Message.

Definition at line 81 of file RubyRequest.cc.

References gem5::ArmISA::mask.

◆ functionalWrite()

◆ getAccessMode()

const RubyAccessMode & gem5::ruby::RubyRequest::getAccessMode ( ) const
inline

Definition at line 242 of file RubyRequest.hh.

References m_AccessMode.

Referenced by gem5::ruby::Profiler::addAddressTraceSample().

◆ getLineAddress()

Addr gem5::ruby::RubyRequest::getLineAddress ( ) const
inline

Definition at line 238 of file RubyRequest.hh.

References m_LineAddress.

Referenced by gem5::ruby::Profiler::addAddressTraceSample().

◆ getPhysicalAddress()

Addr gem5::ruby::RubyRequest::getPhysicalAddress ( ) const
inline

Definition at line 239 of file RubyRequest.hh.

References m_PhysicalAddress.

◆ getPrefetch()

const PrefetchBit & gem5::ruby::RubyRequest::getPrefetch ( ) const
inline

Definition at line 244 of file RubyRequest.hh.

References m_Prefetch.

◆ getProgramCounter()

Addr gem5::ruby::RubyRequest::getProgramCounter ( ) const
inline

Definition at line 241 of file RubyRequest.hh.

References m_ProgramCounter.

Referenced by gem5::ruby::Profiler::addAddressTraceSample().

◆ getRequestPtr()

RequestPtr gem5::ruby::RubyRequest::getRequestPtr ( ) const
inline

Definition at line 245 of file RubyRequest.hh.

References m_pkt.

◆ getSize()

const int & gem5::ruby::RubyRequest::getSize ( ) const
inline

Definition at line 243 of file RubyRequest.hh.

References m_Size.

◆ getType()

const RubyRequestType & gem5::ruby::RubyRequest::getType ( ) const
inline

Definition at line 240 of file RubyRequest.hh.

References m_Type.

Referenced by gem5::ruby::Profiler::addAddressTraceSample().

◆ print()

void gem5::ruby::RubyRequest::print ( std::ostream & out) const
virtual

◆ setWriteMask()

void gem5::ruby::RubyRequest::setWriteMask ( uint32_t offset,
uint32_t len,
std::vector< std::pair< int, AtomicOpFunctor * > > atomicOps )

Definition at line 129 of file RubyRequest.cc.

References gem5::ArmISA::len, m_writeMask, and gem5::ArmISA::offset.

Member Data Documentation

◆ m_AccessMode

RubyAccessMode gem5::ruby::RubyRequest::m_AccessMode

Definition at line 68 of file RubyRequest.hh.

Referenced by getAccessMode(), print(), RubyRequest(), RubyRequest(), RubyRequest(), and RubyRequest().

◆ m_contextId

ContextID gem5::ruby::RubyRequest::m_contextId

Definition at line 72 of file RubyRequest.hh.

Referenced by RubyRequest(), RubyRequest(), RubyRequest(), and RubyRequest().

◆ m_htmFromTransaction

bool gem5::ruby::RubyRequest::m_htmFromTransaction

Definition at line 77 of file RubyRequest.hh.

Referenced by RubyRequest(), RubyRequest(), RubyRequest(), and RubyRequest().

◆ m_htmTransactionUid

uint64_t gem5::ruby::RubyRequest::m_htmTransactionUid

Definition at line 78 of file RubyRequest.hh.

Referenced by RubyRequest(), RubyRequest(), RubyRequest(), and RubyRequest().

◆ m_instSeqNum

uint64_t gem5::ruby::RubyRequest::m_instSeqNum

Definition at line 76 of file RubyRequest.hh.

Referenced by RubyRequest(), and RubyRequest().

◆ m_isGLCSet

bool gem5::ruby::RubyRequest::m_isGLCSet

Definition at line 85 of file RubyRequest.hh.

Referenced by print(), RubyRequest(), RubyRequest(), RubyRequest(), and RubyRequest().

◆ m_isSecure

bool gem5::ruby::RubyRequest::m_isSecure

Definition at line 87 of file RubyRequest.hh.

Referenced by RubyRequest(), RubyRequest(), RubyRequest(), and RubyRequest().

◆ m_isSLCSet

bool gem5::ruby::RubyRequest::m_isSLCSet

Definition at line 86 of file RubyRequest.hh.

Referenced by print(), RubyRequest(), RubyRequest(), RubyRequest(), and RubyRequest().

◆ m_isTlbi

bool gem5::ruby::RubyRequest::m_isTlbi

Definition at line 79 of file RubyRequest.hh.

Referenced by RubyRequest(), RubyRequest(), RubyRequest(), and RubyRequest().

◆ m_LineAddress

Addr gem5::ruby::RubyRequest::m_LineAddress

Definition at line 65 of file RubyRequest.hh.

Referenced by getLineAddress(), print(), RubyRequest(), RubyRequest(), and RubyRequest().

◆ m_PhysicalAddress

Addr gem5::ruby::RubyRequest::m_PhysicalAddress

◆ m_pkt

PacketPtr gem5::ruby::RubyRequest::m_pkt

◆ m_Prefetch

PrefetchBit gem5::ruby::RubyRequest::m_Prefetch

Definition at line 70 of file RubyRequest.hh.

Referenced by getPrefetch(), print(), RubyRequest(), RubyRequest(), RubyRequest(), and RubyRequest().

◆ m_ProgramCounter

Addr gem5::ruby::RubyRequest::m_ProgramCounter

◆ m_Size

int gem5::ruby::RubyRequest::m_Size

◆ m_tlbiTransactionUid

Addr gem5::ruby::RubyRequest::m_tlbiTransactionUid

Definition at line 81 of file RubyRequest.hh.

Referenced by RubyRequest(), RubyRequest(), RubyRequest(), and RubyRequest().

◆ m_Type

RubyRequestType gem5::ruby::RubyRequest::m_Type

Definition at line 66 of file RubyRequest.hh.

Referenced by getType(), print(), RubyRequest(), RubyRequest(), RubyRequest(), and RubyRequest().

◆ m_wfid

int gem5::ruby::RubyRequest::m_wfid

Definition at line 75 of file RubyRequest.hh.

Referenced by RubyRequest(), and RubyRequest().

◆ m_writeMask

WriteMask gem5::ruby::RubyRequest::m_writeMask

◆ m_WTData

DataBlock gem5::ruby::RubyRequest::m_WTData

The documentation for this class was generated from the following files:

Generated on Sat Oct 18 2025 08:07:02 for gem5 by doxygen 1.14.0