From ca3b0eb1559138f0762dd39581ea64851baf742f Mon Sep 17 00:00:00 2001 From: Gabe Black Date: Fri, 20 Jul 2018 19:24:58 -0700 Subject: 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 Maintainer: Gabe Black --- src/systemc/core/process.hh | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) 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: -- cgit v1.2.3