systemc: Add the nonstandard, undocumented halt function.
authorGabe Black <gabeblack@google.com>
Sat, 16 Jun 2018 00:29:44 +0000 (17:29 -0700)
committerGabe Black <gabeblack@google.com>
Wed, 22 Aug 2018 01:04:02 +0000 (01:04 +0000)
Used in the tests.

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

src/systemc/core/sc_module.cc
src/systemc/ext/core/_using.hh
src/systemc/ext/core/sc_module.hh

index 646916fac8b2df5ce99f20d6ed5d2037d20f4f9d..7e6b0597605a9432e498cce592901eac7bf62e73 100644 (file)
@@ -370,6 +370,13 @@ sc_module::wait(double, sc_time_unit, const sc_event_and_list &)
 }
 
 
+void
+sc_module::halt()
+{
+    warn("%s not implemented.\n", __PRETTY_FUNCTION__);
+}
+
+
 void
 next_trigger()
 {
@@ -521,6 +528,12 @@ wait(double, sc_time_unit, const sc_event_and_list &)
     warn("%s not implemented.\n", __PRETTY_FUNCTION__);
 }
 
+void
+halt()
+{
+    warn("%s not implemented.\n", __PRETTY_FUNCTION__);
+}
+
 const char *
 sc_gen_unique_name(const char *)
 {
index 5f5a23af4328f4223345550bd2456822ad727bbf..32cbd70289a1d70acc3b71144f2c0b160bacbaec 100644 (file)
@@ -87,6 +87,7 @@ using sc_core::SC_BIND_PROXY_NIL;
 using sc_core::sc_module;
 using sc_core::next_trigger;
 using sc_core::wait;
+using sc_core::halt;
 using sc_core::sc_gen_unique_name;
 using sc_core::sc_behavior;
 using sc_core::sc_channel;
index c83cf1d3b142e9250f3ffc854d3231c8974b1f43..931eb3a86d4a779eb3683df3f72edfe5d1edc608 100644 (file)
@@ -186,6 +186,8 @@ class sc_module : public sc_object
     void wait(const sc_time &, const sc_event_and_list &);
     void wait(double, sc_time_unit, const sc_event_and_list &);
 
+    void halt();
+
     virtual void before_end_of_elaboration() {}
     virtual void end_of_elaboration() {}
     virtual void start_of_simulation() {}
@@ -236,6 +238,12 @@ void wait(double, sc_time_unit, const sc_event_and_list &);
 #define SC_THREAD(name) /* Implementation defined */
 #define SC_CTHREAD(name, clk) /* Implementation defined */
 
+// Nonstandard
+// Documentation for this is very scarce, but it looks like it's supposed to
+// stop the currently executing cthread, or if a cthread isn't running report
+// an error.
+void halt();
+
 const char *sc_gen_unique_name(const char *);
 
 typedef sc_module sc_behavior;