changeset 2659b1903b0f in /z/repo/gem5
details: http://repo.gem5.org/gem5?cmd=changeset;node=2659b1903b0f
description:
        sim: Update C++ config example to match SystemC example

        Update the use of the drain manager, and checkpointing to
        match changes to gem5 since the example was written.

diffstat:

 util/cxx_config/main.cc |  15 ++++++---------
 1 files changed, 6 insertions(+), 9 deletions(-)

diffs (53 lines):

diff -r 7b317ee691fb -r 2659b1903b0f util/cxx_config/main.cc
--- a/util/cxx_config/main.cc   Sun Nov 22 05:10:19 2015 -0500
+++ b/util/cxx_config/main.cc   Thu Sep 10 16:10:49 2015 +0100
@@ -228,15 +228,13 @@
     if (checkpoint_save) {
         exit_event = simulate(pre_run_time);
 
-        DrainManager drain_manager;
         unsigned int drain_count = 1;
         do {
-            drain_count = config_manager->drain(&drain_manager);
+            drain_count = config_manager->drain();
 
             std::cerr << "Draining " << drain_count << '\n';
 
             if (drain_count > 0) {
-                drain_manager.setCount(drain_count);
                 exit_event = simulate();
             }
         } while (drain_count > 0);
@@ -259,11 +257,12 @@
     if (checkpoint_restore) {
         std::cerr << "Restoring checkpoint\n";
 
-        Checkpoint *checkpoint = new Checkpoint(checkpoint_dir,
+        CheckpointIn *checkpoint = new CheckpointIn(checkpoint_dir,
             config_manager->getSimObjectResolver());
 
-        Serializable::unserializeGlobals(checkpoint);
-        config_manager->loadState(checkpoint);
+        DrainManager::instance().preCheckpointRestore();
+        Serializable::unserializeGlobals(*checkpoint);
+        config_manager->loadState(*checkpoint);
         config_manager->startup();
 
         config_manager->drainResume();
@@ -281,15 +280,13 @@
         BaseCPU &old_cpu = config_manager->getObject<BaseCPU>(from_cpu);
         BaseCPU &new_cpu = config_manager->getObject<BaseCPU>(to_cpu);
 
-        DrainManager drain_manager;
         unsigned int drain_count = 1;
         do {
-            drain_count = config_manager->drain(&drain_manager);
+            drain_count = config_manager->drain();
 
             std::cerr << "Draining " << drain_count << '\n';
 
             if (drain_count > 0) {
-                drain_manager.setCount(drain_count);
                 exit_event = simulate();
             }
         } while (drain_count > 0);
_______________________________________________
gem5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/gem5-dev

Reply via email to