systemc: Implement sc_hierarchical_name_exists.
authorGabe Black <gabeblack@google.com>
Tue, 2 Oct 2018 23:59:46 +0000 (16:59 -0700)
committerGabe Black <gabeblack@google.com>
Tue, 16 Oct 2018 00:47:36 +0000 (00:47 +0000)
This function checks the top level collection of events and objects
to find if one with a particular name exists.

Change-Id: Icf539b502fa9c7401be907ee975eb24a47e79a87
Reviewed-on: https://gem5-review.googlesource.com/c/13206
Reviewed-by: Gabe Black <gabeblack@google.com>
Maintainer: Gabe Black <gabeblack@google.com>

src/systemc/core/sc_module.cc

index 46050934e05de49b6a7797ece74034bc5264bec7..0954805c8eaaf382704405a54ff3eebed145ee91 100644 (file)
 #include <vector>
 
 #include "base/logging.hh"
+#include "systemc/core/event.hh"
 #include "systemc/core/kernel.hh"
 #include "systemc/core/module.hh"
+#include "systemc/core/object.hh"
 #include "systemc/core/process_types.hh"
 #include "systemc/core/sensitivity.hh"
 #include "systemc/ext/channel/sc_signal_in_if.hh"
@@ -795,8 +797,8 @@ sc_gen_unique_name(const char *seed)
 bool
 sc_hierarchical_name_exists(const char *name)
 {
-    warn("%s not implemented.\n", __PRETTY_FUNCTION__);
-    return false;
+    return sc_gem5::findEvent(name) != sc_gem5::allEvents.end() ||
+        ::sc_gem5::findObject(name, sc_gem5::allObjects);
 }
 
 bool