diff options
author | Gabe Black <gabeblack@google.com> | 2018-07-20 19:24:58 -0700 |
---|---|---|
committer | Gabe Black <gabeblack@google.com> | 2018-09-11 21:44:54 +0000 |
commit | ca3b0eb1559138f0762dd39581ea64851baf742f (patch) | |
tree | 56ddd2ef5f248f5d85e236e493e817bc07c2b32e | |
parent | 3224bc355464bfa6bac924e6fa6d6d507700e3ff (diff) | |
download | gem5-ca3b0eb1559138f0762dd39581ea64851baf742f.tar.xz |
systemc: Add a sensitivity type for exports.
Dynamic processes can be sensitive to exports, so we need a pending
sensitivity to represent them.
Change-Id: I87952f8bbb7847ad1f1d98d35cd5dd488e7b28ab
Reviewed-on: https://gem5-review.googlesource.com/12042
Reviewed-by: Gabe Black <gabeblack@google.com>
Maintainer: Gabe Black <gabeblack@google.com>
-rw-r--r-- | src/systemc/core/process.hh | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/src/systemc/core/process.hh b/src/systemc/core/process.hh index afdbb3798..3b1fb4eb6 100644 --- a/src/systemc/core/process.hh +++ b/src/systemc/core/process.hh @@ -39,6 +39,7 @@ #include "systemc/core/list.hh" #include "systemc/core/object.hh" #include "systemc/ext/core/sc_event.hh" +#include "systemc/ext/core/sc_export.hh" #include "systemc/ext/core/sc_interface.hh" #include "systemc/ext/core/sc_module.hh" #include "systemc/ext/core/sc_port.hh" @@ -224,6 +225,24 @@ class PendingSensitivityPort : public PendingSensitivity } }; +class PendingSensitivityExport : public PendingSensitivity +{ + private: + const sc_core::sc_export_base *exp; + + public: + PendingSensitivityExport(Process *p, const sc_core::sc_export_base *exp) : + PendingSensitivity(p), exp(exp) + {} + + void + finalize(Sensitivities &s) override + { + s.push_back(new SensitivityEvent(process, + &exp->get_interface()->default_event())); + } +}; + class PendingSensitivityFinder : public PendingSensitivity { private: |