diff options
-rw-r--r-- | src/python/m5/SimObject.py | 4 | ||||
-rw-r--r-- | src/sim/sim_object.cc | 6 | ||||
-rw-r--r-- | src/sim/sim_object.hh | 13 |
3 files changed, 23 insertions, 0 deletions
diff --git a/src/python/m5/SimObject.py b/src/python/m5/SimObject.py index b74e93a87..0e29980c6 100644 --- a/src/python/m5/SimObject.py +++ b/src/python/m5/SimObject.py @@ -1642,6 +1642,10 @@ class SimObject(object): def getValue(self): return self.getCCObject() + @cxxMethod(return_value_policy="reference") + def getPort(self, if_name, idx): + pass + # Create C++ port connections corresponding to the connections in # _port_refs def connectPorts(self): diff --git a/src/sim/sim_object.cc b/src/sim/sim_object.cc index ab92ae55a..7b794a0b7 100644 --- a/src/sim/sim_object.cc +++ b/src/sim/sim_object.cc @@ -133,6 +133,12 @@ SimObject::getProbeManager() return probeManager; } +Port & +SimObject::getPort(const std::string &if_name, PortID idx) +{ + fatal("%s does not have any port named %s\n", name(), if_name); +} + // // static function: serialize all SimObjects. // diff --git a/src/sim/sim_object.hh b/src/sim/sim_object.hh index 42a19bbe7..5c9bf0019 100644 --- a/src/sim/sim_object.hh +++ b/src/sim/sim_object.hh @@ -56,6 +56,7 @@ #include "sim/drain.hh" #include "sim/eventq.hh" #include "sim/eventq_impl.hh" +#include "sim/port.hh" #include "sim/serialize.hh" class EventManager; @@ -170,6 +171,18 @@ class SimObject : public EventManager, public Serializable, public Drainable ProbeManager *getProbeManager(); /** + * Get a port with a given name and index. This is used at binding time + * and returns a reference to a protocol-agnostic port. + * + * @param if_name Port name + * @param idx Index in the case of a VectorPort + * + * @return A reference to the given port + */ + virtual Port &getPort(const std::string &if_name, + PortID idx=InvalidPortID); + + /** * startup() is the final initialization call before simulation. * All state is initialized (including unserialized state, if any, * such as the curTick() value), so this is the appropriate place to |