summaryrefslogtreecommitdiff
path: root/src/systemc/core/process.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/systemc/core/process.cc')
-rw-r--r--src/systemc/core/process.cc20
1 files changed, 18 insertions, 2 deletions
diff --git a/src/systemc/core/process.cc b/src/systemc/core/process.cc
index d8ed5ffba..3bf7ead07 100644
--- a/src/systemc/core/process.cc
+++ b/src/systemc/core/process.cc
@@ -31,6 +31,7 @@
#include "base/logging.hh"
#include "systemc/core/event.hh"
+#include "systemc/core/port.hh"
#include "systemc/core/scheduler.hh"
#include "systemc/ext/core/sc_join.hh"
#include "systemc/ext/core/sc_main.hh"
@@ -293,9 +294,9 @@ Process::setDynamic(DynamicSensitivity *s)
}
void
-Process::addReset(ResetSensitivity *s)
+Process::addReset(Reset *reset)
{
- resetSensitivities.push_back(s);
+ resets.push_back(reset);
}
void
@@ -418,4 +419,19 @@ throw_it_wrapper(Process *p, ExceptionWrapperBase &exc, bool inc_kids)
p->throw_it(exc, inc_kids);
}
+void
+newReset(const sc_core::sc_port_base *pb, Process *p, bool s, bool v)
+{
+ Port *port = Port::fromPort(pb);
+ port->addReset(new Reset(p, s, v));
+}
+
+void
+newReset(const sc_core::sc_signal_in_if<bool> *sig, Process *p, bool s, bool v)
+{
+ Reset *reset = new Reset(p, s, v);
+ if (!reset->install(sig))
+ delete reset;
+}
+
} // namespace sc_gem5