systemc: Add an sc_event_finder::find_event method.
authorGabe Black <gabeblack@google.com>
Sat, 16 Jun 2018 03:17:21 +0000 (20:17 -0700)
committerGabe Black <gabeblack@google.com>
Tue, 28 Aug 2018 21:17:13 +0000 (21:17 +0000)
The guts of sc_event_finder are supposed to be implementation defined,
but the tests reach in and call this particular method on that class.

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

src/systemc/ext/core/sc_event.hh

index 8eb1283c1998ac4548b3c95b346d2d10d93d573f..0b901ff1e69a2bacfe0935e15cb79fb11a6cc7e3 100644 (file)
@@ -40,6 +40,7 @@ namespace sc_core
 class sc_event;
 class sc_event_and_expr;
 class sc_event_or_expr;
+class sc_interface;
 class sc_object;
 class sc_port_base;
 
@@ -47,6 +48,10 @@ class sc_event_finder
 {
   protected:
     void warn_unimpl(const char *func) const;
+
+  public:
+    // Should be "implementation defined" but used in the tests.
+    virtual const sc_event &find_event(sc_interface *if_p=NULL) const = 0;
 };
 
 template <class IF>
@@ -58,6 +63,13 @@ class sc_event_finder_t : public sc_event_finder
     {
         warn_unimpl(__PRETTY_FUNCTION__);
     }
+
+    const sc_event &
+    find_event(sc_interface *if_p=NULL) const override
+    {
+        warn_unimpl(__PRETTY_FUNCTION__);
+        return *(const sc_event *)nullptr;
+    }
 };
 
 class sc_event_and_list