gem5  v21.1.0.2
Public Member Functions | Private Attributes | List of all members
gem5::ruby::Message Class Referenceabstract

#include <Message.hh>

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

Public Member Functions

 Message (Tick curTime)
 
 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. More...
 
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. 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)
 

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]

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

Definition at line 65 of file Message.hh.

◆ Message() [2/2]

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

◆ ~Message()

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

Definition at line 73 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 90 of file Message.hh.

References panic.

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

◆ functionalRead() [2/2]

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

Reimplemented in gem5::ruby::RubyRequest.

Definition at line 92 of file Message.hh.

References panic.

◆ functionalWrite()

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

◆ getDelayedTicks()

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

Definition at line 104 of file Message.hh.

References m_DelayedTicks.

◆ getDestination() [1/2]

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

Definition at line 116 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 119 of file Message.hh.

References incoming_link.

◆ getLastEnqueueTime()

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

Definition at line 107 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 80 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 111 of file Message.hh.

References m_msg_counter.

◆ getTime()

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

Definition at line 109 of file Message.hh.

References m_time.

◆ getVnet()

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

Definition at line 121 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 120 of file Message.hh.

References incoming_link.

◆ setLastEnqueueTime()

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

Definition at line 106 of file Message.hh.

References m_LastEnqueueTime.

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

◆ setMsgCounter()

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

Definition at line 110 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 122 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 98 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 131 of file Message.hh.

Referenced by getIncomingLink(), and setIncomingLink().

◆ m_DelayedTicks

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

Definition at line 127 of file Message.hh.

Referenced by getDelayedTicks(), and updateDelayedTicks().

◆ m_LastEnqueueTime

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

Definition at line 126 of file Message.hh.

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

◆ m_msg_counter

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

Definition at line 128 of file Message.hh.

Referenced by getMsgCounter(), and setMsgCounter().

◆ m_time

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

Definition at line 125 of file Message.hh.

Referenced by getTime().

◆ vnet

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

Definition at line 132 of file Message.hh.

Referenced by getVnet(), and setVnet().


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

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