systemc: Add a nonstandard sc_signal constructor.

This constructor takes an initial value to set the sc_signal to, and
is used in the tests.

Change-Id: I197218846d9a79f9237238c78b1bbd8a7f55443f
Reviewed-on: https://gem5-review.googlesource.com/11266
Reviewed-by: Gabe Black <gabeblack@google.com>
Maintainer: Gabe Black <gabeblack@google.com>
diff --git a/src/systemc/ext/channel/sc_signal.hh b/src/systemc/ext/channel/sc_signal.hh
index e1ed619..de571b2 100644
--- a/src/systemc/ext/channel/sc_signal.hh
+++ b/src/systemc/ext/channel/sc_signal.hh
@@ -53,6 +53,12 @@
     explicit sc_signal(const char *name) : sc_signal_inout_if<T>(),
                                            sc_prim_channel(name)
     {}
+    explicit sc_signal(const char *name, const T &initial_value) :
+        sc_signal_inout_if<T>(), sc_prim_channel(name)
+    {
+        // Need to consume initial_value.
+        sc_channel_warn_unimpl(__PRETTY_FUNCTION__);
+    }
     virtual ~sc_signal() {}
 
     virtual void
@@ -162,6 +168,12 @@
     {
         sc_channel_warn_unimpl(__PRETTY_FUNCTION__);
     }
+    explicit sc_signal(const char *name, const bool &initial_value) :
+        sc_signal_inout_if<bool>(), sc_prim_channel(name)
+    {
+        // Need to consume initial_value.
+        sc_channel_warn_unimpl(__PRETTY_FUNCTION__);
+    }
     virtual ~sc_signal()
     {
         sc_channel_warn_unimpl(__PRETTY_FUNCTION__);
@@ -292,6 +304,13 @@
     {
         sc_channel_warn_unimpl(__PRETTY_FUNCTION__);
     }
+    explicit sc_signal(const char *name,
+            const sc_dt::sc_logic &initial_value) :
+        sc_signal_inout_if<sc_dt::sc_logic>(), sc_prim_channel(name)
+    {
+        // Need to consume initial_value.
+        sc_channel_warn_unimpl(__PRETTY_FUNCTION__);
+    }
     virtual ~sc_signal()
     {
         sc_channel_warn_unimpl(__PRETTY_FUNCTION__);