DMASequencer.cc (8160:0b3252d3b400) | DMASequencer.cc (8162:5f69f1b0039e) |
---|---|
1/* 2 * Copyright (c) 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; --- 102 unchanged lines hidden (view full) --- 111} 112 113void 114DMASequencer::issueNext() 115{ 116 assert(m_is_busy == true); 117 active_request.bytes_completed = active_request.bytes_issued; 118 if (active_request.len == active_request.bytes_completed) { | 1/* 2 * Copyright (c) 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; --- 102 unchanged lines hidden (view full) --- 111} 112 113void 114DMASequencer::issueNext() 115{ 116 assert(m_is_busy == true); 117 active_request.bytes_completed = active_request.bytes_issued; 118 if (active_request.len == active_request.bytes_completed) { |
119 DPRINTF(RubyDma, "DMA request completed\n"); 120 ruby_hit_callback(active_request.pkt); | 119 // 120 // Must unset the busy flag before calling back the dma port because 121 // the callback may cause a previously nacked request to be reissued 122 // 123 DPRINTF(RubyDma, "DMA request completed\n"); |
121 m_is_busy = false; | 124 m_is_busy = false; |
125 ruby_hit_callback(active_request.pkt); |
|
122 return; 123 } 124 125 SequencerMsg *msg = new SequencerMsg; 126 msg->getPhysicalAddress() = Address(active_request.start_paddr + 127 active_request.bytes_completed); 128 129 assert((msg->getPhysicalAddress().getAddress() & m_data_block_mask) == 0); --- 61 unchanged lines hidden --- | 126 return; 127 } 128 129 SequencerMsg *msg = new SequencerMsg; 130 msg->getPhysicalAddress() = Address(active_request.start_paddr + 131 active_request.bytes_completed); 132 133 assert((msg->getPhysicalAddress().getAddress() & m_data_block_mask) == 0); --- 61 unchanged lines hidden --- |