sim-se: Add prlimit system call
[gem5.git] / src / sim / sim_events.cc
index 719a732ab4c430b3bc5141c53a2748357868ce15..23da8fd8de945d37b78e376c6602224bb86b5da5 100644 (file)
  * Authors: Nathan Binkert
  */
 
+#include "sim/sim_events.hh"
+
 #include <string>
 
 #include "base/callback.hh"
 #include "base/hostinfo.hh"
 #include "sim/eventq_impl.hh"
-#include "sim/sim_events.hh"
 #include "sim/sim_exit.hh"
 #include "sim/stats.hh"
 
@@ -55,9 +56,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 +83,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 +116,6 @@ LocalSimLoopExitEvent::description() const
 void
 LocalSimLoopExitEvent::serialize(CheckpointOut &cp) const
 {
-    paramOut(cp, "type", string("SimLoopExitEvent"));
     Event::serialize(cp);
 
     SERIALIZE_SCALAR(cause);
@@ -137,25 +133,6 @@ LocalSimLoopExitEvent::unserialize(CheckpointIn &cp)
     UNSERIALIZE_SCALAR(repeat);
 }
 
-void
-LocalSimLoopExitEvent::unserializeEvent(CheckpointIn &cp, EventQueue *eventq)
-{
-    Event::unserializeEvent(cp, eventq);
-
-    UNSERIALIZE_SCALAR(cause);
-    UNSERIALIZE_SCALAR(code);
-    UNSERIALIZE_SCALAR(repeat);
-}
-
-Serializable *
-LocalSimLoopExitEvent::createForUnserialize(CheckpointIn &cp,
-                                            const string &section)
-{
-    return new LocalSimLoopExitEvent();
-}
-
-REGISTER_SERIALIZEABLE("LocalSimLoopExitEvent", LocalSimLoopExitEvent)
-
 //
 // constructor: automatically schedules at specified time
 //