gem5  v22.1.0.0
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::PerfectSwitch gem5::ruby::Throttle 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

Public Member Functions

 Consumer (ClockedObject *em, Event::Priority ev_prio=Event::Default_Pri)
 
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,
Event::Priority  ev_prio = Event::Default_Pri 
)

Definition at line 49 of file Consumer.cc.

References processCurrentEvent().

◆ ~Consumer()

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

Definition at line 68 of file Consumer.hh.

Member Function Documentation

◆ alreadyScheduled()

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

Definition at line 76 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 82 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 73 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 92 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 Wed Dec 21 2022 10:24:22 for gem5 by doxygen 1.9.1