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

#include <Consumer.hh>

Inheritance diagram for gem5::ruby::Consumer:
gem5::ruby::AbstractController gem5::ruby::garnet::CrossbarSwitch gem5::ruby::garnet::InputUnit gem5::ruby::garnet::NetworkInterface gem5::ruby::garnet::NetworkLink gem5::ruby::garnet::OutputUnit gem5::ruby::garnet::Router gem5::ruby::garnet::SwitchAllocator gem5::ruby::PerfectSwitch gem5::ruby::Throttle

Public Member Functions

 Consumer (ClockedObject *_em)
 
virtual ~Consumer ()
 
virtual void wakeup ()=0
 
virtual void print (std::ostream &out) const =0
 
virtual void storeEventInfo (int info)
 
bool alreadyScheduled (Tick time)
 
ClockedObjectgetObject ()
 
void scheduleEventAbsolute (Tick timeAbs)
 
void scheduleEvent (Cycles timeDelta)
 

Private Member Functions

void scheduleNextWakeup ()
 
void processCurrentEvent ()
 

Private Attributes

std::set< Tickm_wakeup_ticks
 
EventFunctionWrapper m_wakeup_event
 
ClockedObjectem
 

Detailed Description

Definition at line 61 of file Consumer.hh.

Constructor & Destructor Documentation

◆ Consumer()

gem5::ruby::Consumer::Consumer ( ClockedObject _em)

Definition at line 49 of file Consumer.cc.

References processCurrentEvent().

◆ ~Consumer()

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

Definition at line 67 of file Consumer.hh.

Member Function Documentation

◆ alreadyScheduled()

bool gem5::ruby::Consumer::alreadyScheduled ( Tick  time)
inline

Definition at line 75 of file Consumer.hh.

References m_wakeup_ticks.

Referenced by gem5::ruby::garnet::SwitchAllocator::check_for_wakeup().

◆ getObject()

ClockedObject* gem5::ruby::Consumer::getObject ( )
inline

Definition at line 81 of file Consumer.hh.

References em.

Referenced by gem5::ruby::garnet::NetworkBridge::scheduleFlit().

◆ print()

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

◆ processCurrentEvent()

void gem5::ruby::Consumer::processCurrentEvent ( )
private

Definition at line 86 of file Consumer.cc.

References gem5::Clocked::clockEdge(), em, m_wakeup_ticks, scheduleNextWakeup(), and wakeup().

Referenced by Consumer().

◆ scheduleEvent()

void gem5::ruby::Consumer::scheduleEvent ( Cycles  timeDelta)

◆ scheduleEventAbsolute()

void gem5::ruby::Consumer::scheduleEventAbsolute ( Tick  timeAbs)

◆ scheduleNextWakeup()

void gem5::ruby::Consumer::scheduleNextWakeup ( )
private

◆ storeEventInfo()

virtual void gem5::ruby::Consumer::storeEventInfo ( int  info)
inlinevirtual

Reimplemented in gem5::ruby::PerfectSwitch.

Definition at line 72 of file Consumer.hh.

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

◆ wakeup()

virtual void gem5::ruby::Consumer::wakeup ( )
pure virtual

Member Data Documentation

◆ em

ClockedObject* gem5::ruby::Consumer::em
private

◆ m_wakeup_event

EventFunctionWrapper gem5::ruby::Consumer::m_wakeup_event
private

Definition at line 91 of file Consumer.hh.

Referenced by scheduleNextWakeup().

◆ m_wakeup_ticks

std::set<Tick> gem5::ruby::Consumer::m_wakeup_ticks
private

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

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