From 11b725c19da4d08ae471678f6da867c67e3c15b5 Mon Sep 17 00:00:00 2001 From: Brad Beckmann Date: Tue, 10 Jul 2012 22:51:53 -0700 Subject: ruby: changes how Topologies are created Instead of just passing a list of controllers to the makeTopology function in src/mem/ruby/network/topologies/.py we pass in a function pointer which knows how to make the topology, possibly with some extra state set in the configs/ruby/.py file. Thus, we can move all of the files from network/topologies to configs/topologies. A new class BaseTopology is added which all topologies in configs/topologies must inheirit from and follow its API. --HG-- rename : src/mem/ruby/network/topologies/Crossbar.py => configs/topologies/Crossbar.py rename : src/mem/ruby/network/topologies/Mesh.py => configs/topologies/Mesh.py rename : src/mem/ruby/network/topologies/MeshDirCorners.py => configs/topologies/MeshDirCorners.py rename : src/mem/ruby/network/topologies/Pt2Pt.py => configs/topologies/Pt2Pt.py rename : src/mem/ruby/network/topologies/Torus.py => configs/topologies/Torus.py --- src/python/m5/SimObject.py | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) (limited to 'src/python') diff --git a/src/python/m5/SimObject.py b/src/python/m5/SimObject.py index fe0f1f606..0f742a3a2 100644 --- a/src/python/m5/SimObject.py +++ b/src/python/m5/SimObject.py @@ -168,10 +168,15 @@ class MetaSimObject(type): cls._port_refs = multidict() # port ref objects cls._instantiated = False # really instantiated, cloned, or subclassed - # We don't support multiple inheritance. If you want to, you - # must fix multidict to deal with it properly. - if len(bases) > 1: - raise TypeError, "SimObjects do not support multiple inheritance" + # We don't support multiple inheritance of sim objects. If you want + # to, you must fix multidict to deal with it properly. Non sim-objects + # are ok, though + bTotal = 0 + for c in bases: + if isinstance(c, MetaSimObject): + bTotal += 1 + if bTotal > 1: + raise TypeError, "SimObjects do not support multiple inheritance" base = bases[0] -- cgit v1.2.3