systemc: Add some nonstandard cthread related sc_module functions.

Change-Id: I73f9868b80f9b75e7bd90df6e894daea60a203a1
Reviewed-on: https://gem5-review.googlesource.com/11268
Reviewed-by: Gabe Black <gabeblack@google.com>
Maintainer: Gabe Black <gabeblack@google.com>
diff --git a/src/systemc/core/sc_module.cc b/src/systemc/core/sc_module.cc
index 7e6b059..a461022 100644
--- a/src/systemc/core/sc_module.cc
+++ b/src/systemc/core/sc_module.cc
@@ -376,6 +376,30 @@
     warn("%s not implemented.\n", __PRETTY_FUNCTION__);
 }
 
+void
+sc_module::at_posedge(const sc_signal_in_if<bool> &)
+{
+    warn("%s not implemented.\n", __PRETTY_FUNCTION__);
+}
+
+void
+sc_module::at_posedge(const sc_signal_in_if<sc_dt::sc_logic> &)
+{
+    warn("%s not implemented.\n", __PRETTY_FUNCTION__);
+}
+
+void
+sc_module::at_negedge(const sc_signal_in_if<bool> &)
+{
+    warn("%s not implemented.\n", __PRETTY_FUNCTION__);
+}
+
+void
+sc_module::at_negedge(const sc_signal_in_if<sc_dt::sc_logic> &)
+{
+    warn("%s not implemented.\n", __PRETTY_FUNCTION__);
+}
+
 
 void
 next_trigger()
@@ -534,6 +558,30 @@
     warn("%s not implemented.\n", __PRETTY_FUNCTION__);
 }
 
+void
+at_posedge(const sc_signal_in_if<bool> &)
+{
+    warn("%s not implemented.\n", __PRETTY_FUNCTION__);
+}
+
+void
+at_posedge(const sc_signal_in_if<sc_dt::sc_logic> &)
+{
+    warn("%s not implemented.\n", __PRETTY_FUNCTION__);
+}
+
+void
+at_negedge(const sc_signal_in_if<bool> &)
+{
+    warn("%s not implemented.\n", __PRETTY_FUNCTION__);
+}
+
+void
+at_negedge(const sc_signal_in_if<sc_dt::sc_logic> &)
+{
+    warn("%s not implemented.\n", __PRETTY_FUNCTION__);
+}
+
 const char *
 sc_gen_unique_name(const char *)
 {
diff --git a/src/systemc/ext/core/sc_module.hh b/src/systemc/ext/core/sc_module.hh
index 931eb3a..25053df 100644
--- a/src/systemc/ext/core/sc_module.hh
+++ b/src/systemc/ext/core/sc_module.hh
@@ -36,6 +36,13 @@
 #include "sc_sensitive.hh"
 #include "sc_time.hh"
 
+namespace sc_dt
+{
+
+class sc_logic;
+
+} // namespace sc_dt
+
 namespace sc_core
 {
 
@@ -186,7 +193,12 @@
     void wait(const sc_time &, const sc_event_and_list &);
     void wait(double, sc_time_unit, const sc_event_and_list &);
 
+    // Nonstandard
     void halt();
+    void at_posedge(const sc_signal_in_if<bool> &);
+    void at_posedge(const sc_signal_in_if<sc_dt::sc_logic> &);
+    void at_negedge(const sc_signal_in_if<bool> &);
+    void at_negedge(const sc_signal_in_if<sc_dt::sc_logic> &);
 
     virtual void before_end_of_elaboration() {}
     virtual void end_of_elaboration() {}
@@ -243,6 +255,10 @@
 // stop the currently executing cthread, or if a cthread isn't running report
 // an error.
 void halt();
+void at_posedge(const sc_signal_in_if<bool> &);
+void at_posedge(const sc_signal_in_if<sc_dt::sc_logic> &);
+void at_negedge(const sc_signal_in_if<bool> &);
+void at_negedge(const sc_signal_in_if<sc_dt::sc_logic> &);
 
 const char *sc_gen_unique_name(const char *);