systemc: Add the nonstandard, undocumented halt function. 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>
diff --git a/src/systemc/core/sc_module.cc b/src/systemc/core/sc_module.cc index 646916f..7e6b059 100644 --- a/src/systemc/core/sc_module.cc +++ b/src/systemc/core/sc_module.cc
@@ -371,6 +371,13 @@ void +sc_module::halt() +{ + warn("%s not implemented.\n", __PRETTY_FUNCTION__); +} + + +void next_trigger() { warn("%s not implemented.\n", __PRETTY_FUNCTION__); @@ -521,6 +528,12 @@ warn("%s not implemented.\n", __PRETTY_FUNCTION__); } +void +halt() +{ + warn("%s not implemented.\n", __PRETTY_FUNCTION__); +} + const char * sc_gen_unique_name(const char *) {
diff --git a/src/systemc/ext/core/_using.hh b/src/systemc/ext/core/_using.hh index 5f5a23a..32cbd70 100644 --- a/src/systemc/ext/core/_using.hh +++ b/src/systemc/ext/core/_using.hh
@@ -87,6 +87,7 @@ 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;
diff --git a/src/systemc/ext/core/sc_module.hh b/src/systemc/ext/core/sc_module.hh index c83cf1d..931eb3a 100644 --- a/src/systemc/ext/core/sc_module.hh +++ b/src/systemc/ext/core/sc_module.hh
@@ -186,6 +186,8 @@ 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 @@ #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;