# HG changeset patch
# User Brad Beckmann <[email protected]>
# Date 1268945283 25200
# Node ID f2a5891876d08ca5e63bacc6ac5ce16d132744b9
# Parent  0bbbf9828319dcddbb5e0c595d1576eb421f695e
ruby: Added Null data support to the DMASequencer

diff --git a/src/mem/ruby/system/DMASequencer.cc 
b/src/mem/ruby/system/DMASequencer.cc
--- a/src/mem/ruby/system/DMASequencer.cc
+++ b/src/mem/ruby/system/DMASequencer.cc
@@ -96,7 +96,7 @@
     len : 
     RubySystem::getBlockSizeBytes() - offset;
 
-  if (write) {
+  if (write && (data != NULL)) {
     msg.getDataBlk().setData(data, offset, msg.getLen());
   }
 
@@ -133,8 +133,10 @@
                  RubySystem::getBlockSizeBytes());
 
   if (active_request.write) {
-    
msg.getDataBlk().setData(&active_request.data[active_request.bytes_completed], 
-                            0, msg.getLen());
+      if (active_request.data != NULL) {
+          
msg.getDataBlk().setData(&active_request.data[active_request.bytes_completed], 
+                                   0, msg.getLen());
+      }
     msg.getType() = SequencerRequestType_ST;
   } else {
     msg.getType() = SequencerRequestType_LD;
@@ -153,8 +155,10 @@
   if (active_request.bytes_completed == 0)
     offset = active_request.start_paddr & m_data_block_mask;
   assert( active_request.write == false );
-  memcpy(&active_request.data[active_request.bytes_completed], 
-        dblk.getData(offset, len), len);
+  if (active_request.data != NULL) {
+      memcpy(&active_request.data[active_request.bytes_completed], 
+             dblk.getData(offset, len), len);
+  }
   issueNext();
 }
 

_______________________________________________
m5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/m5-dev

Reply via email to