gem5  v21.1.0.2
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 (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
 

Private Member Functions

int vecIndex (MachineID m) const
 
NodeID bitIndex (NodeID index) const
 

Private Attributes

std::vector< Setm_bits
 

Detailed Description

Definition at line 45 of file NetDest.hh.

Constructor & Destructor Documentation

◆ NetDest() [1/2]

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

Definition at line 39 of file NetDest.cc.

References resize().

◆ NetDest() [2/2]

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

◆ ~NetDest()

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

Definition at line 55 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 52 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 210 of file NetDest.cc.

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

Referenced by gem5::ruby::PerfectSwitch::operateMessageBuffer().

◆ bitIndex()

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

Definition at line 112 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 93 of file NetDest.cc.

◆ broadcast() [2/2]

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

Definition at line 102 of file NetDest.cc.

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

◆ clear()

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

Definition at line 85 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 138 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 94 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 174 of file NetDest.cc.

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

Referenced by 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 278 of file NetDest.cc.

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

◆ isSubset()

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

◆ isSuperset()

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

Definition at line 234 of file NetDest.cc.

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

◆ operator=()

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

◆ OR()

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

Definition at line 198 of file NetDest.cc.

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

◆ print()

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

Definition at line 264 of file NetDest.cc.

References gem5::ArmISA::i, isElement(), gem5::ArmISA::j, 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 ( )

Definition at line 253 of file NetDest.cc.

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

Referenced by gem5::ruby::AbstractController::init(), and NetDest().

◆ setNetDest()

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

Definition at line 61 of file NetDest.cc.

References m_bits.

◆ smallestElement() [1/2]

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

◆ smallestElement() [2/2]

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

Definition at line 159 of file NetDest.cc.

References isElement(), gem5::ArmISA::j, m_bits, and panic.

◆ vecIndex()

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

Definition at line 105 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

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