diff options
author | Gabe Black <gabeblack@google.com> | 2018-06-15 17:29:44 -0700 |
---|---|---|
committer | Gabe Black <gabeblack@google.com> | 2018-08-22 01:04:02 +0000 |
commit | 05e48787980102f826632adc3bdfbc711ae559ce (patch) | |
tree | cadfee25f5e76ce9b70afd3b0e32158eb18fa7e9 | |
parent | 00b411d8d28af46b9067fe252cebd8dddd0ebfec (diff) | |
download | gem5-05e48787980102f826632adc3bdfbc711ae559ce.tar.xz |
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>
-rw-r--r-- | src/systemc/core/sc_module.cc | 13 | ||||
-rw-r--r-- | src/systemc/ext/core/_using.hh | 1 | ||||
-rw-r--r-- | src/systemc/ext/core/sc_module.hh | 8 |
3 files changed, 22 insertions, 0 deletions
diff --git a/src/systemc/core/sc_module.cc b/src/systemc/core/sc_module.cc index 646916fac..7e6b05976 100644 --- a/src/systemc/core/sc_module.cc +++ b/src/systemc/core/sc_module.cc @@ -371,6 +371,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() { warn("%s not implemented.\n", __PRETTY_FUNCTION__); @@ -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 *) { diff --git a/src/systemc/ext/core/_using.hh b/src/systemc/ext/core/_using.hh index 5f5a23af4..32cbd7028 100644 --- a/src/systemc/ext/core/_using.hh +++ b/src/systemc/ext/core/_using.hh @@ -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; diff --git a/src/systemc/ext/core/sc_module.hh b/src/systemc/ext/core/sc_module.hh index c83cf1d3b..931eb3a86 100644 --- a/src/systemc/ext/core/sc_module.hh +++ b/src/systemc/ext/core/sc_module.hh @@ -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; |