packet_queue.hh (12823:ba630bc7a36d) packet_queue.hh (13564:9bbd53a77887)
1/*
1/*
2 * Copyright (c) 2012,2015 ARM Limited
2 * Copyright (c) 2012,2015,2018 ARM Limited
3 * All rights reserved.
4 *
5 * The license below extends only to copyright in the software and shall
6 * not be construed as granting a license to any other intellectual
7 * property including but not limited to intellectual property relating
8 * to a hardware implementation of the functionality of the software
9 * licensed hereunder. You may use the software subject to the license
10 * terms below provided that you ensure that this notice is replicated

--- 80 unchanged lines hidden (view full) ---

91
92 /*
93 * Optionally disable the sanity check
94 * on the size of the transmitList. The
95 * sanity check will be enabled by default.
96 */
97 bool _disableSanityCheck;
98
3 * All rights reserved.
4 *
5 * The license below extends only to copyright in the software and shall
6 * not be construed as granting a license to any other intellectual
7 * property including but not limited to intellectual property relating
8 * to a hardware implementation of the functionality of the software
9 * licensed hereunder. You may use the software subject to the license
10 * terms below provided that you ensure that this notice is replicated

--- 80 unchanged lines hidden (view full) ---

91
92 /*
93 * Optionally disable the sanity check
94 * on the size of the transmitList. The
95 * sanity check will be enabled by default.
96 */
97 bool _disableSanityCheck;
98
99 /**
100 * if true, inserted packets have to be unconditionally scheduled
101 * after the last packet in the queue that references the same
102 * address
103 */
104 bool forceOrder;
105
99 protected:
100
101 /** Label to use for print request packets label stack. */
102 const std::string label;
103
104 /** Remember whether we're awaiting a retry. */
105 bool waitingOnRetry;
106

--- 18 unchanged lines hidden (view full) ---

125 virtual bool sendTiming(PacketPtr pkt) = 0;
126
127 /**
128 * Create a packet queue, linked to an event manager, and a label
129 * that will be used for functional print request packets.
130 *
131 * @param _em Event manager used for scheduling this queue
132 * @param _label Label to push on the label stack for print request packets
106 protected:
107
108 /** Label to use for print request packets label stack. */
109 const std::string label;
110
111 /** Remember whether we're awaiting a retry. */
112 bool waitingOnRetry;
113

--- 18 unchanged lines hidden (view full) ---

132 virtual bool sendTiming(PacketPtr pkt) = 0;
133
134 /**
135 * Create a packet queue, linked to an event manager, and a label
136 * that will be used for functional print request packets.
137 *
138 * @param _em Event manager used for scheduling this queue
139 * @param _label Label to push on the label stack for print request packets
140 * @param force_order Force insertion order for packets with same address
133 * @param disable_sanity_check Flag used to disable the sanity check
134 * on the size of the transmitList. The check is enabled by default.
135 */
136 PacketQueue(EventManager& _em, const std::string& _label,
137 const std::string& _sendEventName,
141 * @param disable_sanity_check Flag used to disable the sanity check
142 * on the size of the transmitList. The check is enabled by default.
143 */
144 PacketQueue(EventManager& _em, const std::string& _label,
145 const std::string& _sendEventName,
146 bool force_order = false,
138 bool disable_sanity_check = false);
139
140 /**
141 * Virtual desctructor since the class may be used as a base class.
142 */
143 virtual ~PacketQueue();
144
145 public:

--- 36 unchanged lines hidden (view full) ---

182 */
183 void schedSendEvent(Tick when);
184
185 /**
186 * Add a packet to the transmit list, and schedule a send event.
187 *
188 * @param pkt Packet to send
189 * @param when Absolute time (in ticks) to send packet
147 bool disable_sanity_check = false);
148
149 /**
150 * Virtual desctructor since the class may be used as a base class.
151 */
152 virtual ~PacketQueue();
153
154 public:

--- 36 unchanged lines hidden (view full) ---

191 */
192 void schedSendEvent(Tick when);
193
194 /**
195 * Add a packet to the transmit list, and schedule a send event.
196 *
197 * @param pkt Packet to send
198 * @param when Absolute time (in ticks) to send packet
190 * @param force_order Force insertion order for packets with same address
191 */
199 */
192 void schedSendTiming(PacketPtr pkt, Tick when, bool force_order = false);
200 void schedSendTiming(PacketPtr pkt, Tick when);
193
194 /**
195 * Retry sending a packet from the queue. Note that this is not
196 * necessarily the same packet if something has been added with an
197 * earlier time stamp.
198 */
199 void retry();
200

--- 61 unchanged lines hidden (view full) ---

262
263 /**
264 * Create a snoop response packet queue, linked to an event
265 * manager, a master port, and a label that will be used for
266 * functional print request packets.
267 *
268 * @param _em Event manager used for scheduling this queue
269 * @param _masterPort Master port used to send the packets
201
202 /**
203 * Retry sending a packet from the queue. Note that this is not
204 * necessarily the same packet if something has been added with an
205 * earlier time stamp.
206 */
207 void retry();
208

--- 61 unchanged lines hidden (view full) ---

270
271 /**
272 * Create a snoop response packet queue, linked to an event
273 * manager, a master port, and a label that will be used for
274 * functional print request packets.
275 *
276 * @param _em Event manager used for scheduling this queue
277 * @param _masterPort Master port used to send the packets
278 * @param force_order Force insertion order for packets with same address
270 * @param _label Label to push on the label stack for print request packets
271 */
272 SnoopRespPacketQueue(EventManager& _em, MasterPort& _masterPort,
279 * @param _label Label to push on the label stack for print request packets
280 */
281 SnoopRespPacketQueue(EventManager& _em, MasterPort& _masterPort,
282 bool force_order = false,
273 const std::string _label = "SnoopRespPacketQueue");
274
275 virtual ~SnoopRespPacketQueue() { }
276
277 const std::string name() const
278 { return name(masterPort, label); }
279
280 bool sendTiming(PacketPtr pkt);

--- 17 unchanged lines hidden (view full) ---

298
299 /**
300 * Create a response packet queue, linked to an event manager, a
301 * slave port, and a label that will be used for functional print
302 * request packets.
303 *
304 * @param _em Event manager used for scheduling this queue
305 * @param _slavePort Slave port used to send the packets
283 const std::string _label = "SnoopRespPacketQueue");
284
285 virtual ~SnoopRespPacketQueue() { }
286
287 const std::string name() const
288 { return name(masterPort, label); }
289
290 bool sendTiming(PacketPtr pkt);

--- 17 unchanged lines hidden (view full) ---

308
309 /**
310 * Create a response packet queue, linked to an event manager, a
311 * slave port, and a label that will be used for functional print
312 * request packets.
313 *
314 * @param _em Event manager used for scheduling this queue
315 * @param _slavePort Slave port used to send the packets
316 * @param force_order Force insertion order for packets with same address
306 * @param _label Label to push on the label stack for print request packets
307 */
308 RespPacketQueue(EventManager& _em, SlavePort& _slavePort,
317 * @param _label Label to push on the label stack for print request packets
318 */
319 RespPacketQueue(EventManager& _em, SlavePort& _slavePort,
309 const std::string _label = "RespPacketQueue");
320 bool force_order = false,
321 const std::string _label = "RespPacketQueue");
310
311 virtual ~RespPacketQueue() { }
312
313 const std::string name() const
314 { return name(slavePort, label); }
315
316 bool sendTiming(PacketPtr pkt);
317
318};
319
320#endif // __MEM_PACKET_QUEUE_HH__
322
323 virtual ~RespPacketQueue() { }
324
325 const std::string name() const
326 { return name(slavePort, label); }
327
328 bool sendTiming(PacketPtr pkt);
329
330};
331
332#endif // __MEM_PACKET_QUEUE_HH__