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