diff --git a/util/systemc/main.cc b/util/systemc/main.cc --- a/util/systemc/main.cc +++ b/util/systemc/main.cc @@ -266,7 +266,7 @@ if (checkpoint_restore) { std::cerr << "Restoring checkpoint\n"; - Checkpoint *checkpoint = new Checkpoint(checkpoint_dir, + CheckpointIn *checkpoint = new CheckpointIn(checkpoint_dir, config_manager->getSimObjectResolver()); /* Catch SystemC up with gem5 after checkpoint restore. @@ -282,7 +282,7 @@ wait(sc_core::sc_time(wait_period, sc_core::SC_PS)); } - config_manager->loadState(checkpoint); + config_manager->loadState(*checkpoint); config_manager->startup(); config_manager->drainResume(); } else { @@ -298,16 +298,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); @@ -337,15 +334,13 @@ BaseCPU &old_cpu = config_manager->getObject(from_cpu); BaseCPU &new_cpu = config_manager->getObject(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);