gem5
v21.0.0.0
|
#include <Consumer.hh>
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) |
ClockedObject * | getObject () |
void | scheduleEventAbsolute (Tick timeAbs) |
void | scheduleEvent (Cycles timeDelta) |
Private Member Functions | |
void | scheduleNextWakeup () |
void | processCurrentEvent () |
Private Attributes | |
std::set< Tick > | m_wakeup_ticks |
EventFunctionWrapper | m_wakeup_event |
ClockedObject * | em |
Definition at line 55 of file Consumer.hh.
Consumer::Consumer | ( | ClockedObject * | _em | ) |
Definition at line 43 of file Consumer.cc.
References processCurrentEvent().
|
inlinevirtual |
Definition at line 61 of file Consumer.hh.
|
inline |
Definition at line 69 of file Consumer.hh.
References m_wakeup_ticks.
Referenced by SwitchAllocator::check_for_wakeup().
|
inline |
Definition at line 75 of file Consumer.hh.
References em.
Referenced by NetworkBridge::scheduleFlit().
|
pure virtual |
Implemented in AbstractController, PerfectSwitch, Throttle, NetworkInterface, Router, NetworkLink, OutputUnit, SwitchAllocator, InputUnit, and CrossbarSwitch.
Referenced by operator<<().
|
private |
Definition at line 80 of file Consumer.cc.
References Clocked::clockEdge(), em, m_wakeup_ticks, scheduleNextWakeup(), and wakeup().
Referenced by Consumer().
void Consumer::scheduleEvent | ( | Cycles | timeDelta | ) |
Definition at line 50 of file Consumer.cc.
References Clocked::clockEdge(), em, m_wakeup_ticks, and scheduleNextWakeup().
Referenced by NetworkInterface::checkReschedule(), PerfectSwitch::operateMessageBuffer(), Router::schedule_wakeup(), AbstractController::serviceMemoryQueue(), OutputUnit::wakeup(), NetworkLink::wakeup(), and Throttle::wakeup().
void Consumer::scheduleEventAbsolute | ( | Tick | timeAbs | ) |
Definition at line 57 of file Consumer.cc.
References Clocked::clockPeriod(), divCeil(), em, m_wakeup_ticks, and scheduleNextWakeup().
Referenced by NetworkInterface::dequeueCallback(), MessageBuffer::enqueue(), InputUnit::increment_credit(), OutputUnit::insert_flit(), MessageBuffer::reanalyzeList(), MessageBuffer::recycle(), NetworkBridge::scheduleFlit(), NetworkInterface::scheduleFlit(), TimerTable::set(), NetworkLink::wakeup(), and NetworkInterface::wakeup().
|
private |
Definition at line 65 of file Consumer.cc.
References Clocked::clockEdge(), em, m_wakeup_event, m_wakeup_ticks, EventManager::reschedule(), EventManager::schedule(), Event::scheduled(), and Event::when().
Referenced by processCurrentEvent(), scheduleEvent(), and scheduleEventAbsolute().
|
inlinevirtual |
Reimplemented in PerfectSwitch.
Definition at line 66 of file Consumer.hh.
Referenced by MessageBuffer::enqueue().
|
pure virtual |
Implemented in AbstractController, PerfectSwitch, Throttle, NetworkInterface, Router, NetworkLink, NetworkBridge, OutputUnit, InputUnit, CrossbarSwitch, and SwitchAllocator.
Referenced by processCurrentEvent().
|
private |
Definition at line 86 of file Consumer.hh.
Referenced by getObject(), processCurrentEvent(), scheduleEvent(), scheduleEventAbsolute(), and scheduleNextWakeup().
|
private |
Definition at line 85 of file Consumer.hh.
Referenced by scheduleNextWakeup().
|
private |
Definition at line 84 of file Consumer.hh.
Referenced by alreadyScheduled(), processCurrentEvent(), scheduleEvent(), scheduleEventAbsolute(), and scheduleNextWakeup().