diff options
author | Gabe Black <gabeblack@google.com> | 2018-09-07 18:25:10 -0700 |
---|---|---|
committer | Gabe Black <gabeblack@google.com> | 2018-10-09 21:44:00 +0000 |
commit | a4b82a86115649cbe403315bf04231d5c9512015 (patch) | |
tree | 2cd692e0d2f8e179c5b89c3b76ef23415f5d3ac6 /src/systemc/ext/core | |
parent | 18ca156d81b7399945fdb11a3a8aee34f05bf92c (diff) | |
download | gem5-a4b82a86115649cbe403315bf04231d5c9512015.tar.xz |
systemc: Centralize module callbacks and report new warnings.
By centralizing module callbacks, the gem5 module class knows when
different stages of the simulation are happening and can do it's own
extra checks. It also compartmentalizes modules more since the kernel
object doesn't have to reach into them to enumerate ports and exports.
Change-Id: I55887284af9c05150fe9d054f5b6147cad6092a1
Reviewed-on: https://gem5-review.googlesource.com/c/12610
Reviewed-by: Gabe Black <gabeblack@google.com>
Maintainer: Gabe Black <gabeblack@google.com>
Diffstat (limited to 'src/systemc/ext/core')
-rw-r--r-- | src/systemc/ext/core/sc_export.hh | 2 | ||||
-rw-r--r-- | src/systemc/ext/core/sc_module.hh | 3 |
2 files changed, 3 insertions, 2 deletions
diff --git a/src/systemc/ext/core/sc_export.hh b/src/systemc/ext/core/sc_export.hh index f5ce894b8..e8bf0d911 100644 --- a/src/systemc/ext/core/sc_export.hh +++ b/src/systemc/ext/core/sc_export.hh @@ -48,7 +48,7 @@ class sc_export_base : public sc_object virtual const sc_interface *get_interface() const = 0; protected: - friend class sc_gem5::Kernel; + friend class sc_gem5::Module; virtual void before_end_of_elaboration() = 0; virtual void end_of_elaboration() = 0; diff --git a/src/systemc/ext/core/sc_module.hh b/src/systemc/ext/core/sc_module.hh index 0e5e679c9..e5e4c2086 100644 --- a/src/systemc/ext/core/sc_module.hh +++ b/src/systemc/ext/core/sc_module.hh @@ -95,6 +95,7 @@ class sc_module : public sc_object { public: friend class ::sc_gem5::Kernel; + friend class ::sc_gem5::Module; virtual ~sc_module(); @@ -177,7 +178,7 @@ class sc_module : public sc_object sc_module(const std::string &); /* Deprecated, but used in the regression tests. */ - void end_module() {} + void end_module(); void reset_signal_is(const sc_in<bool> &, bool); void reset_signal_is(const sc_inout<bool> &, bool); |