gem5  v21.1.0.2
Public Member Functions | Public Attributes | List of all members
gem5::ruby::RubyRequest Class Reference

#include <RubyRequest.hh>

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

Public Member Functions

 RubyRequest (Tick curTime, 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, 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, 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)
 
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 print (std::ostream &out) const
 
bool functionalRead (Packet *pkt)
 The two functions below are used for reading / writing the message functionally. More...
 
bool functionalRead (Packet *pkt, WriteMask &mask)
 
bool functionalWrite (Packet *pkt)
 
- Public Member Functions inherited from gem5::ruby::Message
 Message (Tick curTime)
 
 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. More...
 
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
 

Detailed Description

Definition at line 61 of file RubyRequest.hh.

Constructor & Destructor Documentation

◆ RubyRequest() [1/4]

gem5::ruby::RubyRequest::RubyRequest ( Tick  curTime,
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

Definition at line 80 of file RubyRequest.hh.

References m_LineAddress, m_PhysicalAddress, and gem5::ruby::makeLineAddress().

Referenced by clone().

◆ RubyRequest() [2/4]

gem5::ruby::RubyRequest::RubyRequest ( Tick  curTime,
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

Definition at line 99 of file RubyRequest.hh.

References m_LineAddress, m_PhysicalAddress, and gem5::ruby::makeLineAddress().

◆ RubyRequest() [3/4]

gem5::ruby::RubyRequest::RubyRequest ( Tick  curTime,
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

Definition at line 125 of file RubyRequest.hh.

References m_LineAddress, m_PhysicalAddress, and gem5::ruby::makeLineAddress().

◆ RubyRequest() [4/4]

gem5::ruby::RubyRequest::RubyRequest ( Tick  curTime)
inline

Definition at line 152 of file RubyRequest.hh.

Member Function Documentation

◆ clone()

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

Implements gem5::ruby::Message.

Definition at line 153 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 69 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 79 of file RubyRequest.cc.

◆ functionalWrite()

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

◆ getAccessMode()

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

Definition at line 160 of file RubyRequest.hh.

References m_AccessMode.

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

◆ getLineAddress()

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

Definition at line 156 of file RubyRequest.hh.

References m_LineAddress.

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

◆ getPhysicalAddress()

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

Definition at line 157 of file RubyRequest.hh.

References m_PhysicalAddress.

◆ getPrefetch()

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

Definition at line 162 of file RubyRequest.hh.

References m_Prefetch.

◆ getProgramCounter()

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

Definition at line 159 of file RubyRequest.hh.

References m_ProgramCounter.

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

◆ getRequestPtr()

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

Definition at line 163 of file RubyRequest.hh.

References m_pkt, and gem5::Packet::req.

◆ getSize()

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

Definition at line 161 of file RubyRequest.hh.

References m_Size.

◆ getType()

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

Definition at line 158 of file RubyRequest.hh.

References m_Type.

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

◆ print()

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

Member Data Documentation

◆ m_AccessMode

RubyAccessMode gem5::ruby::RubyRequest::m_AccessMode

Definition at line 68 of file RubyRequest.hh.

Referenced by getAccessMode(), and print().

◆ m_contextId

ContextID gem5::ruby::RubyRequest::m_contextId

Definition at line 72 of file RubyRequest.hh.

◆ m_htmFromTransaction

bool gem5::ruby::RubyRequest::m_htmFromTransaction

Definition at line 77 of file RubyRequest.hh.

◆ m_htmTransactionUid

uint64_t gem5::ruby::RubyRequest::m_htmTransactionUid

Definition at line 78 of file RubyRequest.hh.

◆ m_instSeqNum

uint64_t gem5::ruby::RubyRequest::m_instSeqNum

Definition at line 76 of file RubyRequest.hh.

◆ m_LineAddress

Addr gem5::ruby::RubyRequest::m_LineAddress

Definition at line 65 of file RubyRequest.hh.

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

◆ m_PhysicalAddress

Addr gem5::ruby::RubyRequest::m_PhysicalAddress

Definition at line 64 of file RubyRequest.hh.

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

◆ m_pkt

PacketPtr gem5::ruby::RubyRequest::m_pkt

Definition at line 71 of file RubyRequest.hh.

Referenced by functionalWrite(), and getRequestPtr().

◆ m_Prefetch

PrefetchBit gem5::ruby::RubyRequest::m_Prefetch

Definition at line 70 of file RubyRequest.hh.

Referenced by getPrefetch(), and print().

◆ m_ProgramCounter

Addr gem5::ruby::RubyRequest::m_ProgramCounter

Definition at line 67 of file RubyRequest.hh.

Referenced by getProgramCounter(), and print().

◆ m_Size

int gem5::ruby::RubyRequest::m_Size

Definition at line 69 of file RubyRequest.hh.

Referenced by functionalWrite(), getSize(), and print().

◆ m_Type

RubyRequestType gem5::ruby::RubyRequest::m_Type

Definition at line 66 of file RubyRequest.hh.

Referenced by getType(), and print().

◆ m_wfid

int gem5::ruby::RubyRequest::m_wfid

Definition at line 75 of file RubyRequest.hh.

◆ m_writeMask

WriteMask gem5::ruby::RubyRequest::m_writeMask

Definition at line 73 of file RubyRequest.hh.

◆ m_WTData

DataBlock gem5::ruby::RubyRequest::m_WTData

Definition at line 74 of file RubyRequest.hh.

Referenced by functionalWrite().


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

Generated on Tue Sep 21 2021 12:32:09 for gem5 by doxygen 1.8.17