diff options
-rw-r--r-- | src/sim/sim_events.cc | 30 | ||||
-rw-r--r-- | src/sim/sim_events.hh | 5 |
2 files changed, 10 insertions, 25 deletions
diff --git a/src/sim/sim_events.cc b/src/sim/sim_events.cc index 94bd06191..cfd08f7ac 100644 --- a/src/sim/sim_events.cc +++ b/src/sim/sim_events.cc @@ -55,9 +55,8 @@ using namespace std; GlobalSimLoopExitEvent::GlobalSimLoopExitEvent(Tick when, const std::string &_cause, - int c, Tick r, bool serialize) - : GlobalEvent(when, Sim_Exit_Pri, - IsExitEvent | (serialize ? AutoSerialize : 0)), + int c, Tick r) + : GlobalEvent(when, Sim_Exit_Pri, IsExitEvent), cause(_cause), code(c), repeat(r) { } @@ -83,19 +82,16 @@ void exitSimLoop(const std::string &message, int exit_code, Tick when, Tick repeat, bool serialize) { - new GlobalSimLoopExitEvent(when + simQuantum, message, exit_code, repeat, - serialize); -} + warn_if(serialize && (when != curTick() || repeat), + "exitSimLoop called with a delay and auto serialization. This is " + "currently unsupported."); -LocalSimLoopExitEvent::LocalSimLoopExitEvent() - : Event(Sim_Exit_Pri, IsExitEvent | AutoSerialize), - cause(""), code(0), repeat(0) -{ + new GlobalSimLoopExitEvent(when + simQuantum, message, exit_code, repeat); } LocalSimLoopExitEvent::LocalSimLoopExitEvent(const std::string &_cause, int c, - Tick r, bool serialize) - : Event(Sim_Exit_Pri, IsExitEvent | (serialize ? AutoSerialize : 0)), + Tick r) + : Event(Sim_Exit_Pri, IsExitEvent), cause(_cause), code(c), repeat(r) { } @@ -119,7 +115,6 @@ LocalSimLoopExitEvent::description() const void LocalSimLoopExitEvent::serialize(CheckpointOut &cp) const { - paramOut(cp, "type", string("SimLoopExitEvent")); Event::serialize(cp); SERIALIZE_SCALAR(cause); @@ -137,15 +132,6 @@ LocalSimLoopExitEvent::unserialize(CheckpointIn &cp) UNSERIALIZE_SCALAR(repeat); } -Serializable * -LocalSimLoopExitEvent::createForUnserialize(CheckpointIn &cp, - const string §ion) -{ - return new LocalSimLoopExitEvent(); -} - -REGISTER_SERIALIZEABLE("LocalSimLoopExitEvent", LocalSimLoopExitEvent) - // // constructor: automatically schedules at specified time // diff --git a/src/sim/sim_events.hh b/src/sim/sim_events.hh index 7c2393010..8a384019a 100644 --- a/src/sim/sim_events.hh +++ b/src/sim/sim_events.hh @@ -63,7 +63,7 @@ class GlobalSimLoopExitEvent : public GlobalEvent // non-scheduling version for createForUnserialize() GlobalSimLoopExitEvent(); GlobalSimLoopExitEvent(Tick when, const std::string &_cause, int c, - Tick repeat = 0, bool serialize = false); + Tick repeat = 0); const std::string getCause() const { return cause; } const int getCode() const { return code; } @@ -83,8 +83,7 @@ class LocalSimLoopExitEvent : public Event public: LocalSimLoopExitEvent(); - LocalSimLoopExitEvent(const std::string &_cause, int c, Tick repeat = 0, - bool serialize = false); + LocalSimLoopExitEvent(const std::string &_cause, int c, Tick repeat = 0); const std::string getCause() const { return cause; } const int getCode() const { return code; } |