gem5 v24.0.0.0
Loading...
Searching...
No Matches
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()

◆ 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()

◆ scheduleEventAbsolute()

◆ scheduleNextWakeup()

◆ 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()

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 Tue Jun 18 2024 16:24:22 for gem5 by doxygen 1.11.0