gem5 [DEVELOP-FOR-25.1]
Loading...
Searching...
No Matches
gem5::ruby::Message Class Referenceabstract

#include <Message.hh>

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

Public Member Functions

 Message (Tick curTime, int block_size, const RubySystem *rs)
 Message (const Message &other)=default
virtual ~Message ()
virtual MsgPtr clone () const =0
virtual void print (std::ostream &out) const =0
virtual const MessageSizeType & getMessageSize () const
virtual MessageSizeType & getMessageSize ()
virtual bool functionalRead (Packet *pkt)
 The two functions below are used for reading / writing the message functionally.
virtual bool functionalRead (Packet *pkt, WriteMask &mask)
virtual bool functionalWrite (Packet *pkt)
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)

Protected Attributes

int m_block_size = 0

Private Attributes

Tick m_time
Tick m_LastEnqueueTime
Tick m_DelayedTicks
uint64_t m_msg_counter
int incoming_link
int vnet

Detailed Description

Definition at line 62 of file Message.hh.

Constructor & Destructor Documentation

◆ Message() [1/2]

◆ Message() [2/2]

gem5::ruby::Message::Message ( const Message & other)
default

References Message().

◆ ~Message()

virtual gem5::ruby::Message::~Message ( )
inlinevirtual

Definition at line 74 of file Message.hh.

Member Function Documentation

◆ clone()

virtual MsgPtr gem5::ruby::Message::clone ( ) const
pure virtual

Implemented in gem5::ruby::RubyRequest.

◆ functionalRead() [1/2]

virtual bool gem5::ruby::Message::functionalRead ( Packet * pkt)
inlinevirtual

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 in gem5::ruby::RubyRequest.

Definition at line 91 of file Message.hh.

References panic.

Referenced by gem5::ruby::MessageBuffer::functionalAccess(), and gem5::ruby::garnet::flit::functionalRead().

◆ functionalRead() [2/2]

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

Reimplemented in gem5::ruby::RubyRequest.

Definition at line 93 of file Message.hh.

References gem5::ArmISA::mask, and panic.

◆ functionalWrite()

virtual bool gem5::ruby::Message::functionalWrite ( Packet * pkt)
inlinevirtual

◆ getDelayedTicks()

Tick gem5::ruby::Message::getDelayedTicks ( ) const
inline

Definition at line 105 of file Message.hh.

References m_DelayedTicks.

◆ getDestination() [1/2]

virtual NetDest & gem5::ruby::Message::getDestination ( )
inlinevirtual

Definition at line 117 of file Message.hh.

References panic.

◆ getDestination() [2/2]

virtual const NetDest & gem5::ruby::Message::getDestination ( ) const
inlinevirtual

◆ getIncomingLink()

int gem5::ruby::Message::getIncomingLink ( ) const
inline

Definition at line 120 of file Message.hh.

References incoming_link.

◆ getLastEnqueueTime()

Tick gem5::ruby::Message::getLastEnqueueTime ( ) const
inline

Definition at line 108 of file Message.hh.

References m_LastEnqueueTime.

Referenced by gem5::ruby::MessageBuffer::enqueue().

◆ getMessageSize() [1/2]

virtual MessageSizeType & gem5::ruby::Message::getMessageSize ( )
inlinevirtual

Definition at line 81 of file Message.hh.

References panic.

◆ getMessageSize() [2/2]

virtual const MessageSizeType & gem5::ruby::Message::getMessageSize ( ) const
inlinevirtual

◆ getMsgCounter()

uint64_t gem5::ruby::Message::getMsgCounter ( ) const
inline

Definition at line 112 of file Message.hh.

References m_msg_counter.

◆ getTime()

Tick gem5::ruby::Message::getTime ( ) const
inline

Definition at line 110 of file Message.hh.

References m_time.

◆ getVnet()

int gem5::ruby::Message::getVnet ( ) const
inline

Definition at line 122 of file Message.hh.

References vnet.

◆ print()

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

Implemented in gem5::ruby::RubyRequest.

Referenced by gem5::ruby::operator<<().

◆ setIncomingLink()

void gem5::ruby::Message::setIncomingLink ( int link)
inline

Definition at line 121 of file Message.hh.

References incoming_link.

◆ setLastEnqueueTime()

void gem5::ruby::Message::setLastEnqueueTime ( const Tick & time)
inline

Definition at line 107 of file Message.hh.

References m_LastEnqueueTime.

Referenced by gem5::ruby::MessageBuffer::enqueue(), and gem5::ruby::WireBuffer::enqueue().

◆ setMsgCounter()

void gem5::ruby::Message::setMsgCounter ( uint64_t c)
inline

Definition at line 111 of file Message.hh.

References gem5::ArmISA::c, and m_msg_counter.

Referenced by gem5::ruby::MessageBuffer::enqueue().

◆ setVnet()

void gem5::ruby::Message::setVnet ( int net)
inline

Definition at line 123 of file Message.hh.

References vnet.

◆ updateDelayedTicks()

void gem5::ruby::Message::updateDelayedTicks ( Tick curTime)
inline

Update the delay this message has experienced so far.

Definition at line 99 of file Message.hh.

References m_DelayedTicks, and m_LastEnqueueTime.

Referenced by gem5::ruby::MessageBuffer::enqueue().

Member Data Documentation

◆ incoming_link

int gem5::ruby::Message::incoming_link
private

Definition at line 135 of file Message.hh.

Referenced by getIncomingLink(), and setIncomingLink().

◆ m_block_size

int gem5::ruby::Message::m_block_size = 0
protected

Definition at line 126 of file Message.hh.

Referenced by Message().

◆ m_DelayedTicks

Tick gem5::ruby::Message::m_DelayedTicks
private

Definition at line 131 of file Message.hh.

Referenced by getDelayedTicks(), Message(), and updateDelayedTicks().

◆ m_LastEnqueueTime

Tick gem5::ruby::Message::m_LastEnqueueTime
private

Definition at line 130 of file Message.hh.

Referenced by getLastEnqueueTime(), Message(), setLastEnqueueTime(), and updateDelayedTicks().

◆ m_msg_counter

uint64_t gem5::ruby::Message::m_msg_counter
private

Definition at line 132 of file Message.hh.

Referenced by getMsgCounter(), Message(), and setMsgCounter().

◆ m_time

Tick gem5::ruby::Message::m_time
private

Definition at line 129 of file Message.hh.

Referenced by getTime(), and Message().

◆ vnet

int gem5::ruby::Message::vnet
private

Definition at line 136 of file Message.hh.

Referenced by getVnet(), and setVnet().


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

Generated on Mon Oct 27 2025 04:13:23 for gem5 by doxygen 1.14.0