summaryrefslogtreecommitdiff
path: root/util/systemc/sc_module.hh
diff options
context:
space:
mode:
Diffstat (limited to 'util/systemc/sc_module.hh')
-rw-r--r--util/systemc/sc_module.hh12
1 files changed, 12 insertions, 0 deletions
diff --git a/util/systemc/sc_module.hh b/util/systemc/sc_module.hh
index c9ad94429..b529e2137 100644
--- a/util/systemc/sc_module.hh
+++ b/util/systemc/sc_module.hh
@@ -99,6 +99,10 @@ class Module : public sc_core::sc_module
/** Expected exit time of last eventLoop sleep */
Tick wait_exit_time;
+ /** Are we in Module::simulate? Used to mask events when not inside
+ * the simulate loop */
+ bool in_simulate;
+
/** Placeholder base class for a variant event queue if this becomes
* useful */
class SCEventQueue : public EventQueue
@@ -131,10 +135,18 @@ class Module : public sc_core::sc_module
* are created */
static void setupEventQueues(Module &module);
+ /** Catch gem5 time up with SystemC */
+ void catchup();
+
/** Notify an externalSchedulingEvent at the given time from the
* current SystemC time */
void notify(sc_core::sc_time time_from_now = sc_core::SC_ZERO_TIME);
+ /** Process an event triggered by externalSchedulingEvent and also
+ * call eventLoop (to try and mop up any events at this time) if there
+ * are any scheduled events */
+ void serviceExternalEvent();
+
/** Process gem5 events up until an exit event or there are no events
* left. */
void eventLoop();