MessageBuffer.cc (11111:6da33e720481) MessageBuffer.cc (11118:75c1e564a725)
1/*
2 * Copyright (c) 1999-2008 Mark D. Hill and David A. Wood
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are
7 * met: redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer;

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

276 m_consumer->scheduleEventAbsolute(schdTick);
277 lt.pop_front();
278 }
279}
280
281void
282MessageBuffer::reanalyzeMessages(Addr addr, Tick current_time)
283{
1/*
2 * Copyright (c) 1999-2008 Mark D. Hill and David A. Wood
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are
7 * met: redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer;

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

276 m_consumer->scheduleEventAbsolute(schdTick);
277 lt.pop_front();
278 }
279}
280
281void
282MessageBuffer::reanalyzeMessages(Addr addr, Tick current_time)
283{
284 DPRINTF(RubyQueue, "ReanalyzeMessages %s\n", addr);
284 DPRINTF(RubyQueue, "ReanalyzeMessages %#x\n", addr);
285 assert(m_stall_msg_map.count(addr) > 0);
286
287 //
288 // Put all stalled messages associated with this address back on the
289 // prio heap. The reanalyzeList call will make sure the consumer is
290 // scheduled for the current cycle so that the previously stalled messages
291 // will be observed before any younger messages that may arrive this cycle
292 //

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

310 reanalyzeList(map_iter->second, current_time);
311 }
312 m_stall_msg_map.clear();
313}
314
315void
316MessageBuffer::stallMessage(Addr addr, Tick current_time)
317{
285 assert(m_stall_msg_map.count(addr) > 0);
286
287 //
288 // Put all stalled messages associated with this address back on the
289 // prio heap. The reanalyzeList call will make sure the consumer is
290 // scheduled for the current cycle so that the previously stalled messages
291 // will be observed before any younger messages that may arrive this cycle
292 //

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

310 reanalyzeList(map_iter->second, current_time);
311 }
312 m_stall_msg_map.clear();
313}
314
315void
316MessageBuffer::stallMessage(Addr addr, Tick current_time)
317{
318 DPRINTF(RubyQueue, "Stalling due to %s\n", addr);
318 DPRINTF(RubyQueue, "Stalling due to %#x\n", addr);
319 assert(isReady(current_time));
320 assert(getOffset(addr) == 0);
321 MsgPtr message = m_prio_heap.front();
322
323 dequeue(current_time);
324
325 //
326 // Note: no event is scheduled to analyze the map at a later time.

--- 90 unchanged lines hidden ---
319 assert(isReady(current_time));
320 assert(getOffset(addr) == 0);
321 MsgPtr message = m_prio_heap.front();
322
323 dequeue(current_time);
324
325 //
326 // Note: no event is scheduled to analyze the map at a later time.

--- 90 unchanged lines hidden ---