summaryrefslogtreecommitdiff
path: root/src/systemc/ext/core/sc_sensitive.hh
diff options
context:
space:
mode:
authorGabe Black <gabeblack@google.com>2018-06-29 16:46:52 -0700
committerGabe Black <gabeblack@google.com>2018-09-05 06:02:51 +0000
commit4bd389c9d0370d67464c2a508381abe326de3bdf (patch)
tree57fb22c26e1df3c0ebe49d406b89f6940217baa4 /src/systemc/ext/core/sc_sensitive.hh
parentaaf0c47c972d3811314db93f0fe1ababf4c408f1 (diff)
downloadgem5-4bd389c9d0370d67464c2a508381abe326de3bdf.tar.xz
systemc: Fill out sc_process_handle and create Process classes.
The sc_process_handle class now primarily delegates to a Process object it points at. The Process object does book keeping as far as its internal state, but doesn't yet have a way to run its target function or to schedule itself or inject exceptions into its context of execution. Change-Id: I98389778abe29aa26e3e3a91bf02e6721acc8a9c Reviewed-on: https://gem5-review.googlesource.com/11613 Reviewed-by: Gabe Black <gabeblack@google.com> Maintainer: Gabe Black <gabeblack@google.com>
Diffstat (limited to 'src/systemc/ext/core/sc_sensitive.hh')
-rw-r--r--src/systemc/ext/core/sc_sensitive.hh22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/systemc/ext/core/sc_sensitive.hh b/src/systemc/ext/core/sc_sensitive.hh
index 62f18b6d2..72d401f68 100644
--- a/src/systemc/ext/core/sc_sensitive.hh
+++ b/src/systemc/ext/core/sc_sensitive.hh
@@ -30,12 +30,20 @@
#ifndef __SYSTEMC_EXT_CORE_SC_SENSITIVE_HH__
#define __SYSTEMC_EXT_CORE_SC_SENSITIVE_HH__
+namespace sc_gem5
+{
+
+class Process;
+
+} // namespace sc_gem5
+
namespace sc_core
{
class sc_event;
class sc_event_finder;
class sc_interface;
+class sc_module;
class sc_port_base;
class sc_sensitive
@@ -45,6 +53,20 @@ class sc_sensitive
sc_sensitive &operator << (const sc_interface &);
sc_sensitive &operator << (const sc_port_base &);
sc_sensitive &operator << (sc_event_finder &);
+
+ sc_sensitive &operator << (::sc_gem5::Process *p);
+
+ private:
+ friend class sc_module;
+
+ // Install all the static events which may not have been ready at
+ // construction time, like the default_event of the peer of an unbound
+ // port.
+ void finalize();
+
+ sc_sensitive();
+
+ ::sc_gem5::Process *currentProcess;
};
} // namespace sc_core