From: Gabe Black Date: Sat, 21 Jul 2018 02:24:58 +0000 (-0700) Subject: systemc: Add a sensitivity type for exports. X-Git-Tag: v19.0.0.0~1828 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=ca3b0eb1559138f0762dd39581ea64851baf742f;p=gem5.git 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 --- 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: