From: Tiago Muck Date: Thu, 2 May 2019 23:39:13 +0000 (-0500) Subject: mem-ruby: SimpleNetwork implementation of functional reads X-Git-Tag: v20.0.0.0~171 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=00eba28068c50eebd3346fa5fe64c6b0e213742c;p=gem5.git mem-ruby: SimpleNetwork implementation of functional reads Change-Id: Id362d992cbf178f15294f0a5e9060a1de2beb394 Signed-off-by: Tiago Mück Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/22021 Reviewed-by: Jason Lowe-Power Maintainer: Jason Lowe-Power Tested-by: kokoro --- diff --git a/src/mem/ruby/network/simple/SimpleNetwork.cc b/src/mem/ruby/network/simple/SimpleNetwork.cc index 51d4daed4..84817e444 100644 --- a/src/mem/ruby/network/simple/SimpleNetwork.cc +++ b/src/mem/ruby/network/simple/SimpleNetwork.cc @@ -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; diff --git a/src/mem/ruby/network/simple/Switch.cc b/src/mem/ruby/network/simple/Switch.cc index 71b66365c..d1e5026b1 100644 --- a/src/mem/ruby/network/simple/Switch.cc +++ b/src/mem/ruby/network/simple/Switch.cc @@ -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; }