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 --- |