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 NetDestgetDestination () const
 
virtual NetDestgetDestination ()
 
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