gem5 v24.1.0.1
Loading...
Searching...
No Matches
Public Member Functions | Private Member Functions | Private Attributes | List of all members
gem5::ruby::NetDest Class Reference

#include <NetDest.hh>

Public Member Functions

 NetDest ()
 
 NetDest (RubySystem *ruby_system)
 
 NetDest (int bit_size)
 
NetDestoperator= (const Set &obj)
 
 ~NetDest ()
 
void add (MachineID newElement)
 
void addNetDest (const NetDest &netDest)
 
void setNetDest (MachineType machine, const Set &set)
 
void remove (MachineID oldElement)
 
void removeNetDest (const NetDest &netDest)
 
void clear ()
 
void broadcast ()
 
void broadcast (MachineType machine)
 
int count () const
 
bool isEqual (const NetDest &netDest) const
 
NetDest OR (const NetDest &orNetDest) const
 
NetDest AND (const NetDest &andNetDest) const
 
bool intersectionIsNotEmpty (const NetDest &other_netDest) const
 
bool intersectionIsEmpty (const NetDest &other_netDest) const
 
bool isSuperset (const NetDest &test) const
 
bool isSubset (const NetDest &test) const
 
bool isElement (MachineID element) const
 
bool isBroadcast () const
 
bool isEmpty () const
 
std::vector< NodeIDgetAllDest ()
 
MachineID smallestElement () const
 
MachineID smallestElement (MachineType machine) const
 
void resize ()
 
int getSize () const
 
NodeID elementAt (MachineID index)
 
void print (std::ostream &out) const
 
void setRubySystem (RubySystem *rs)
 

Private Member Functions

int vecIndex (MachineID m) const
 
NodeID bitIndex (NodeID index) const
 
int MachineType_base_count (const MachineType &obj)
 
int MachineType_base_number (const MachineType &obj)
 

Private Attributes

std::vector< Setm_bits
 
RubySystemm_ruby_system = nullptr
 

Detailed Description

Definition at line 47 of file NetDest.hh.

Constructor & Destructor Documentation

◆ NetDest() [1/3]

gem5::ruby::NetDest::NetDest ( )

Definition at line 41 of file NetDest.cc.

◆ NetDest() [2/3]

gem5::ruby::NetDest::NetDest ( RubySystem ruby_system)

Definition at line 45 of file NetDest.cc.

References resize().

◆ NetDest() [3/3]

gem5::ruby::NetDest::NetDest ( int  bit_size)
explicit

◆ ~NetDest()

gem5::ruby::NetDest::~NetDest ( )
inline

Definition at line 58 of file NetDest.hh.

Member Function Documentation

◆ add()

void gem5::ruby::NetDest::add ( MachineID  newElement)

◆ addNetDest()

void gem5::ruby::NetDest::addNetDest ( const NetDest netDest)

Definition at line 60 of file NetDest.cc.

References getSize(), gem5::ArmISA::i, and m_bits.

◆ AND()

NetDest gem5::ruby::NetDest::AND ( const NetDest andNetDest) const

Definition at line 239 of file NetDest.cc.

References getSize(), gem5::ArmISA::i, m_bits, and m_ruby_system.

Referenced by gem5::ruby::WeightBased::findRoute().

◆ bitIndex()

NodeID gem5::ruby::NetDest::bitIndex ( NodeID  index) const
inlineprivate

Definition at line 117 of file NetDest.hh.

References gem5::MipsISA::index.

Referenced by add(), elementAt(), isElement(), and remove().

◆ broadcast() [1/2]

void gem5::ruby::NetDest::broadcast ( )

Definition at line 107 of file NetDest.cc.

References broadcast().

Referenced by broadcast().

◆ broadcast() [2/2]

void gem5::ruby::NetDest::broadcast ( MachineType  machine)

Definition at line 116 of file NetDest.cc.

References add(), gem5::ArmISA::i, m_ruby_system, and MachineType_base_count().

◆ clear()

void gem5::ruby::NetDest::clear ( )

Definition at line 98 of file NetDest.cc.

References gem5::ArmISA::i, and m_bits.

Referenced by gem5::ruby::garnet::NetworkInterface::flitisizeMessage().

◆ count()

int gem5::ruby::NetDest::count ( ) const

◆ elementAt()

NodeID gem5::ruby::NetDest::elementAt ( MachineID  index)

Definition at line 159 of file NetDest.cc.

References bitIndex(), gem5::MipsISA::index, m_bits, and vecIndex().

◆ getAllDest()

std::vector< NodeID > gem5::ruby::NetDest::getAllDest ( )

◆ getSize()

int gem5::ruby::NetDest::getSize ( ) const
inline

Definition at line 97 of file NetDest.hh.

References m_bits.

Referenced by add(), addNetDest(), AND(), intersectionIsNotEmpty(), OR(), and removeNetDest().

◆ intersectionIsEmpty()

bool gem5::ruby::NetDest::intersectionIsEmpty ( const NetDest other_netDest) const

Referenced by intersectionIsNotEmpty().

◆ intersectionIsNotEmpty()

bool gem5::ruby::NetDest::intersectionIsNotEmpty ( const NetDest other_netDest) const

◆ isBroadcast()

bool gem5::ruby::NetDest::isBroadcast ( ) const

Definition at line 200 of file NetDest.cc.

References gem5::ArmISA::i, isBroadcast(), and m_bits.

Referenced by isBroadcast(), and gem5::ruby::network_message_to_size().

◆ isElement()

bool gem5::ruby::NetDest::isElement ( MachineID  element) const

◆ isEmpty()

bool gem5::ruby::NetDest::isEmpty ( ) const

◆ isEqual()

bool gem5::ruby::NetDest::isEqual ( const NetDest netDest) const

Definition at line 314 of file NetDest.cc.

References gem5::ArmISA::i, isEqual(), m_bits, and gem5::ArmISA::n.

Referenced by isEqual().

◆ isSubset()

bool gem5::ruby::NetDest::isSubset ( const NetDest test) const
inline

◆ isSuperset()

bool gem5::ruby::NetDest::isSuperset ( const NetDest test) const

Definition at line 265 of file NetDest.cc.

References gem5::ArmISA::i, isSuperset(), and m_bits.

Referenced by isSuperset().

◆ MachineType_base_count()

int gem5::ruby::NetDest::MachineType_base_count ( const MachineType &  obj)
private

Definition at line 326 of file NetDest.cc.

References m_ruby_system, and gem5::ruby::RubySystem::MachineType_base_count().

Referenced by broadcast(), and resize().

◆ MachineType_base_number()

int gem5::ruby::NetDest::MachineType_base_number ( const MachineType &  obj)
private

Definition at line 333 of file NetDest.cc.

References m_ruby_system, and gem5::ruby::RubySystem::MachineType_base_number().

Referenced by getAllDest().

◆ operator=()

NetDest & gem5::ruby::NetDest::operator= ( const Set obj)

◆ OR()

NetDest gem5::ruby::NetDest::OR ( const NetDest orNetDest) const

Definition at line 226 of file NetDest.cc.

References getSize(), gem5::ArmISA::i, m_bits, and m_ruby_system.

◆ print()

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

Definition at line 299 of file NetDest.cc.

References gem5::ArmISA::i, isElement(), and m_bits.

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

◆ remove()

void gem5::ruby::NetDest::remove ( MachineID  oldElement)

◆ removeNetDest()

void gem5::ruby::NetDest::removeNetDest ( const NetDest netDest)

◆ resize()

void gem5::ruby::NetDest::resize ( )

◆ setNetDest()

void gem5::ruby::NetDest::setNetDest ( MachineType  machine,
const Set set 
)

Definition at line 70 of file NetDest.cc.

References m_bits, m_ruby_system, and gem5::ArmISA::set.

◆ setRubySystem()

void gem5::ruby::NetDest::setRubySystem ( RubySystem rs)
inline

Definition at line 104 of file NetDest.hh.

References m_ruby_system, resize(), and gem5::ArmISA::rs.

Referenced by gem5::ruby::AbstractController::init().

◆ smallestElement() [1/2]

MachineID gem5::ruby::NetDest::smallestElement ( ) const

◆ smallestElement() [2/2]

MachineID gem5::ruby::NetDest::smallestElement ( MachineType  machine) const

Definition at line 182 of file NetDest.cc.

References isElement(), m_bits, m_ruby_system, and panic.

◆ vecIndex()

int gem5::ruby::NetDest::vecIndex ( MachineID  m) const
inlineprivate

Definition at line 110 of file NetDest.hh.

References gem5::ArmISA::m, and m_bits.

Referenced by add(), elementAt(), isElement(), and remove().

Member Data Documentation

◆ m_bits

std::vector<Set> gem5::ruby::NetDest::m_bits
private

◆ m_ruby_system

RubySystem* gem5::ruby::NetDest::m_ruby_system = nullptr
private

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

Generated on Mon Jan 13 2025 04:29:12 for gem5 by doxygen 1.9.8