From: Gabe Black Date: Thu, 7 Mar 2019 04:43:59 +0000 (-0800) Subject: python: Change || to && for MessageBuffers in connectPorts. X-Git-Tag: v19.0.0.0~1040 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=2da37b5efa70c34aa3665c947b0ef10c4e2a3ae7;p=gem5.git python: Change || to && for MessageBuffers in connectPorts. The connectPorts function currently checks if *either* of the peers in a port connection are a MessageBuffer, and if so will ignore the connection. This CL changes that || into a && so that *both* of the peers need to be a Ruby types (either a MessageBuffer or Network) for the connection to be ignored. That makes it easier to contain that abnormal behavior to those types instead of having it apply even when other types of port owners are involved. Unfortunately the number of interesting Ruby types is unbounded, but these are the types with ports as of today. This mechanism will hopefully be replacedall together so this should be a temporary issue. Change-Id: I140498770e5d37eb2abd3d99261d47e111f1c8ab Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/17031 Reviewed-by: Nikos Nikoleris Reviewed-by: Jason Lowe-Power Reviewed-by: Andreas Sandberg Maintainer: Jason Lowe-Power --- diff --git a/src/python/pybind11/pyobject.cc b/src/python/pybind11/pyobject.cc index a2da96d3b..bd363a132 100644 --- a/src/python/pybind11/pyobject.cc +++ b/src/python/pybind11/pyobject.cc @@ -50,7 +50,9 @@ #include "dev/net/etherint.hh" #include "dev/net/etherobject.hh" #include "mem/mem_object.hh" +#include "mem/ruby/network/Network.hh" #include "mem/ruby/slicc_interface/AbstractController.hh" +#include "mem/ruby/system/Sequencer.hh" #include "sim/full_system.hh" namespace py = pybind11; @@ -84,8 +86,11 @@ connectPorts(SimObject *o1, const std::string &name1, int i1, MessageBuffer *mb1, *mb2; mb1 = dynamic_cast(o1); mb2 = dynamic_cast(o2); + Network *nw1, *nw2; + nw1 = dynamic_cast(o1); + nw2 = dynamic_cast(o2); - if (mb1 || mb2) { + if ((mb1 || nw1) && (mb2 || nw2)) { // No need to connect anything here currently. MessageBuffer // connections in Python only serve to print the connections in // the config output.