summaryrefslogtreecommitdiff
path: root/src/python/m5
diff options
context:
space:
mode:
authorGabe Black <gabeblack@google.com>2019-03-07 01:36:08 -0800
committerGabe Black <gabeblack@google.com>2019-03-19 10:22:27 +0000
commit378d9ccbeb4053aeeab002159b26625854af54f7 (patch)
tree8cb16b22c64054ec19480c4f918bd92f705b3543 /src/python/m5
parent7f1458bec4ae3ea3fb5f0948f0323355e1f20512 (diff)
downloadgem5-378d9ccbeb4053aeeab002159b26625854af54f7.tar.xz
python: Switch to the new getPort mechanism to connect ports.
This retrieves ports using the getPort method, and connects them using the bind method on the ports themselves. Any smarts as far as what type of peers are allowed to connect or how they connect is left up to the individual bind methods. Change-Id: Ic640d1fce8af1bed411116e5830edc4a8a0f9d66 Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/17039 Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com> Maintainer: Andreas Sandberg <andreas.sandberg@arm.com>
Diffstat (limited to 'src/python/m5')
-rw-r--r--src/python/m5/params.py24
1 files changed, 3 insertions, 21 deletions
diff --git a/src/python/m5/params.py b/src/python/m5/params.py
index ff625e0d6..52360221b 100644
--- a/src/python/m5/params.py
+++ b/src/python/m5/params.py
@@ -1943,8 +1943,6 @@ class PortRef(object):
# Call C++ to create corresponding port connection between C++ objects
def ccConnect(self):
- from _m5.pyobject import connectPorts
-
if self.ccConnected: # already done this
return
@@ -1952,27 +1950,11 @@ class PortRef(object):
if not self.peer: # nothing to connect to
return
- # check that we connect a master to a slave
- if self.role == peer.role:
- raise TypeError(
- "cannot connect '%s' and '%s' due to identical role '%s'" % \
- (peer, self, self.role))
-
- if self.role == 'SLAVE':
- # do nothing and let the master take care of it
- return
+ port = self.simobj.getPort(self.name, self.index)
+ peer_port = peer.simobj.getPort(peer.name, peer.index)
+ port.bind(peer_port)
- try:
- # self is always the master and peer the slave
- connectPorts(self.simobj.getCCObject(), self.name, self.index,
- peer.simobj.getCCObject(), peer.name, peer.index)
- except:
- print("Error connecting port %s.%s to %s.%s" %
- (self.simobj.path(), self.name,
- peer.simobj.path(), peer.name))
- raise
self.ccConnected = True
- peer.ccConnected = True
# A reference to an individual element of a VectorPort... much like a
# PortRef, but has an index.