systemc: Add the "implementation defined" vport function.
authorGabe Black <gabeblack@google.com>
Tue, 19 Jun 2018 01:51:21 +0000 (18:51 -0700)
committerGabe Black <gabeblack@google.com>
Wed, 5 Sep 2018 05:58:46 +0000 (05:58 +0000)
This function is in an "implementation defined" class body in the spec,
and has a comment next to it which says "(for internal use only)" next
to it, but it is still used directly in one of the tests.

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

src/systemc/ext/core/sc_port.hh

index 6f7c676556b9040309bf6626fcd04c81e37478fa..262ca382b56452aabf699c3693ad59fd77f66135 100644 (file)
@@ -57,6 +57,10 @@ class sc_port_base : public sc_object
     // Implementation defined, but depended on by the tests.
     void bind(sc_interface &);
     void bind(sc_port_base &);
+
+    // Implementation defined, but depended on by the tests.
+    virtual int vbind(sc_interface &) = 0;
+    virtual int vbind(sc_port_base &) = 0;
 };
 
 template <class IF>
@@ -150,6 +154,20 @@ class sc_port_b : public sc_port_base
     {}
     virtual ~sc_port_b() {}
 
+    // Implementation defined, but depended on by the tests.
+    int
+    vbind(sc_interface &)
+    {
+        this->warn_unimpl(__PRETTY_FUNCTION__);
+        return 0;
+    }
+    int
+    vbind(sc_port_base &)
+    {
+        this->warn_unimpl(__PRETTY_FUNCTION__);
+        return 0;
+    }
+
   private:
     // Disabled
     sc_port_b() {}