mem-ruby: SimpleNetwork implementation of functional reads
authorTiago Muck <tiago.muck@arm.com>
Thu, 2 May 2019 23:39:13 +0000 (18:39 -0500)
committerTiago Mück <tiago.muck@arm.com>
Thu, 23 Apr 2020 00:23:30 +0000 (00:23 +0000)
Change-Id: Id362d992cbf178f15294f0a5e9060a1de2beb394
Signed-off-by: Tiago Mück <tiago.muck@arm.com>
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/22021
Reviewed-by: Jason Lowe-Power <power.jg@gmail.com>
Maintainer: Jason Lowe-Power <power.jg@gmail.com>
Tested-by: kokoro <noreply+kokoro@google.com>
src/mem/ruby/network/simple/SimpleNetwork.cc
src/mem/ruby/network/simple/Switch.cc

index 51d4daed400623df5d795b50c7d986ef75a93844..84817e444b25ed2741852e810c137fc9ef12704f 100644 (file)
@@ -1,4 +1,16 @@
 /*
+ * Copyright (c) 2019 ARM Limited
+ * All rights reserved.
+ *
+ * The license below extends only to copyright in the software and shall
+ * not be construed as granting a license to any other intellectual
+ * property including but not limited to intellectual property relating
+ * to a hardware implementation of the functionality of the software
+ * licensed hereunder.  You may use the software subject to the license
+ * terms below provided that you ensure that this notice is replicated
+ * unmodified and in its entirety in all distributions of the software,
+ * modified or unmodified, in source code or in binary form.
+ *
  * Copyright (c) 1999-2008 Mark D. Hill and David A. Wood
  * All rights reserved.
  *
@@ -178,9 +190,12 @@ bool
 SimpleNetwork::functionalRead(Packet *pkt)
 {
     for (unsigned int i = 0; i < m_switches.size(); i++) {
-        if (m_switches[i]->functionalRead(pkt)) {
+        if (m_switches[i]->functionalRead(pkt))
+            return true;
+    }
+    for (unsigned int i = 0; i < m_int_link_buffers.size(); ++i) {
+        if (m_int_link_buffers[i]->functionalRead(pkt))
             return true;
-        }
     }
 
     return false;
index 71b66365c6d549afcf7c11f410c55668eac8d564..d1e5026b12efce5d8e732453c66385158f2349de 100644 (file)
@@ -1,5 +1,17 @@
 /*
  * Copyright (c) 2020 Inria
+ * Copyright (c) 2019 ARM Limited
+ * All rights reserved.
+ *
+ * The license below extends only to copyright in the software and shall
+ * not be construed as granting a license to any other intellectual
+ * property including but not limited to intellectual property relating
+ * to a hardware implementation of the functionality of the software
+ * licensed hereunder.  You may use the software subject to the license
+ * terms below provided that you ensure that this notice is replicated
+ * unmodified and in its entirety in all distributions of the software,
+ * modified or unmodified, in source code or in binary form.
+ *
  * Copyright (c) 1999-2008 Mark D. Hill and David A. Wood
  * All rights reserved.
  *
@@ -154,6 +166,10 @@ Switch::print(std::ostream& out) const
 bool
 Switch::functionalRead(Packet *pkt)
 {
+    for (unsigned int i = 0; i < m_port_buffers.size(); ++i) {
+        if (m_port_buffers[i]->functionalRead(pkt))
+            return true;
+    }
     return false;
 }