|
gem5 [DEVELOP-FOR-25.0]
|
#include <Consumer.hh>
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) |
| 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 61 of file Consumer.hh.
| gem5::ruby::Consumer::Consumer | ( | ClockedObject * | em, |
| Event::Priority | ev_prio = Event::Default_Pri ) |
Definition at line 49 of file Consumer.cc.
References m_wakeup_event, and processCurrentEvent().
Referenced by gem5::ruby::AbstractController::AbstractController(), gem5::ruby::garnet::CrossbarSwitch::CrossbarSwitch(), gem5::ruby::garnet::InputUnit::InputUnit(), gem5::ruby::garnet::NetworkInterface::NetworkInterface(), gem5::ruby::garnet::NetworkLink::NetworkLink(), gem5::ruby::garnet::OutputUnit::OutputUnit(), gem5::ruby::PerfectSwitch::PerfectSwitch(), gem5::ruby::garnet::Router::Router(), gem5::ruby::garnet::NetworkLink::setLinkConsumer(), gem5::ruby::garnet::SwitchAllocator::SwitchAllocator(), gem5::ruby::Throttle::Throttle(), and gem5::ruby::garnet::NetworkLink::~NetworkLink().
|
inlinevirtual |
Definition at line 68 of file Consumer.hh.
|
inline |
Definition at line 76 of file Consumer.hh.
References m_wakeup_ticks.
|
inline |
Definition at line 82 of file Consumer.hh.
References em.
|
pure virtual |
Implemented in gem5::ruby::AbstractController, gem5::ruby::CHIGenericController, 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, and gem5::ruby::Throttle.
Referenced by gem5::ruby::operator<<().
|
private |
Definition at line 86 of file Consumer.cc.
References em, m_wakeup_ticks, scheduleNextWakeup(), and wakeup().
Referenced by Consumer().
| void gem5::ruby::Consumer::scheduleEvent | ( | Cycles | timeDelta | ) |
Definition at line 56 of file Consumer.cc.
References em, m_wakeup_ticks, and scheduleNextWakeup().
Referenced by gem5::ruby::garnet::NetworkInterface::checkReschedule(), gem5::ruby::PerfectSwitch::operateMessageBuffer(), gem5::ruby::garnet::Router::schedule_wakeup(), gem5::ruby::AbstractController::serviceMemoryQueue(), gem5::ruby::CHIGenericController::wakeup(), gem5::ruby::garnet::NetworkBridge::wakeup(), gem5::ruby::garnet::NetworkLink::wakeup(), gem5::ruby::garnet::OutputUnit::wakeup(), and gem5::ruby::Throttle::wakeup().
| void gem5::ruby::Consumer::scheduleEventAbsolute | ( | Tick | timeAbs | ) |
Definition at line 63 of file Consumer.cc.
References gem5::divCeil(), em, m_wakeup_ticks, and scheduleNextWakeup().
Referenced by gem5::ruby::garnet::NetworkInterface::dequeueCallback(), gem5::ruby::garnet::NetworkInterface::scheduleFlit(), and gem5::ruby::garnet::NetworkInterface::wakeup().
|
private |
Definition at line 71 of file Consumer.cc.
References em, m_wakeup_event, and m_wakeup_ticks.
Referenced by processCurrentEvent(), scheduleEvent(), and scheduleEventAbsolute().
|
inlinevirtual |
Reimplemented in gem5::ruby::PerfectSwitch.
Definition at line 73 of file Consumer.hh.
|
pure virtual |
Implemented in gem5::ruby::AbstractController, gem5::ruby::CHIGenericController, gem5::ruby::garnet::CrossbarSwitch, gem5::ruby::garnet::InputUnit, gem5::ruby::garnet::NetworkBridge, gem5::ruby::garnet::NetworkInterface, gem5::ruby::garnet::NetworkLink, gem5::ruby::garnet::OutputUnit, gem5::ruby::garnet::Router, gem5::ruby::garnet::SwitchAllocator, gem5::ruby::PerfectSwitch, and gem5::ruby::Throttle.
Referenced by processCurrentEvent().
|
private |
Definition at line 93 of file Consumer.hh.
Referenced by getObject(), processCurrentEvent(), scheduleEvent(), scheduleEventAbsolute(), scheduleNextWakeup(), gem5::ruby::Throttle::Throttle(), gem5::ruby::Throttle::Throttle(), and gem5::ruby::Throttle::Throttle().
|
private |
Definition at line 92 of file Consumer.hh.
Referenced by Consumer(), and scheduleNextWakeup().
|
private |
Definition at line 91 of file Consumer.hh.
Referenced by alreadyScheduled(), processCurrentEvent(), scheduleEvent(), scheduleEventAbsolute(), and scheduleNextWakeup().