Go to the documentation of this file.
76 Tick arrival_time = current_time + delta;
77 assert(arrival_time > current_time);
79 Message* msg_ptr = message.get();
84 scheduleEventAbsolute(arrival_time);
86 panic(
"No Consumer for WireBuffer! %s\n", *
this);
103 assert(msg_ptr != NULL);
118 Tick future_time = current_time + recycle_latency;
119 node->setLastEnqueueTime(future_time);
125 scheduleEventAbsolute(future_time);
146 RubyWireBufferParams::create()
RubyWireBufferParams Params
uint64_t Tick
Tick count type.
void dequeue(Tick current_time)
ostream & operator<<(ostream &out, const WireBuffer &obj)
Consumer * m_consumer_ptr
std::vector< MsgPtr > m_message_queue
WireBuffer(const Params *p)
void print(std::ostream &out) const
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)
Overload hash function for BasicBlockRange type.
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 Wed Sep 30 2020 14:02:13 for gem5 by doxygen 1.8.17