Go to the documentation of this file.
74 Tick arrival_time = current_time + delta;
75 assert(arrival_time > current_time);
77 Message* msg_ptr = message.get();
82 scheduleEventAbsolute(arrival_time);
84 panic(
"No Consumer for WireBuffer! %s\n", *
this);
93 std::greater<MsgPtr>());
101 assert(msg_ptr != NULL);
115 std::greater<MsgPtr>());
117 Tick future_time = current_time + recycle_latency;
118 node->setLastEnqueueTime(future_time);
122 std::greater<MsgPtr>());
124 scheduleEventAbsolute(future_time);
RubyWireBufferParams Params
uint64_t Tick
Tick count type.
void dequeue(Tick current_time)
Consumer * m_consumer_ptr
WireBuffer(const Params &p)
std::vector< MsgPtr > m_message_queue
void print(std::ostream &out) const
std::ostream & operator<<(std::ostream &out, const WireBuffer &obj)
std::shared_ptr< Message > MsgPtr
bool isReady(Tick current_time)
void init()
init() is called after all C++ SimObjects have been created and all ports are connected.
void setLastEnqueueTime(const Tick &time)
void enqueue(MsgPtr message, Tick current_time, Tick delta)
void recycle(Tick current_time, Tick recycle_latency)
#define panic(...)
This implements a cprintf based panic() function.
Abstract superclass for simulation objects.
Generated on Tue Mar 23 2021 19:41:28 for gem5 by doxygen 1.8.17