}
void
-RubySystem::serializeOld(CheckpointOut &cp)
+RubySystem::serialize(CheckpointOut &cp) const
{
// Store the cache-block size, so we are able to restore on systems with a
// different cache-block size. CacheRecorder depends on the correct
SERIALIZE_SCALAR(cache_trace_file);
SERIALIZE_SCALAR(cache_trace_size);
+}
- // Now finished with the cache recorder.
- delete m_cache_recorder;
- m_cache_recorder = NULL;
+void
+RubySystem::drainResume()
+{
+ // Delete the cache recorder if it was created in memWriteback()
+ // to checkpoint the current cache state.
+ if (m_cache_recorder) {
+ delete m_cache_recorder;
+ m_cache_recorder = NULL;
+ }
}
void
void resetStats();
void memWriteback();
- void serializeOld(CheckpointOut &cp) M5_ATTR_OVERRIDE;
+ void serialize(CheckpointOut &cp) const M5_ATTR_OVERRIDE;
void unserialize(CheckpointIn &cp) M5_ATTR_OVERRIDE;
+ void drainResume() M5_ATTR_OVERRIDE;
void process();
void startup();
bool functionalRead(Packet *ptr);
uint64 cache_trace_size,
uint64 block_size_bytes);
- void readCompressedTrace(std::string filename,
- uint8_t *&raw_data,
- uint64& uncompressed_trace_size);
- void writeCompressedTrace(uint8_t *raw_data, std::string file,
- uint64 uncompressed_trace_size);
+ static void readCompressedTrace(std::string filename,
+ uint8_t *&raw_data,
+ uint64& uncompressed_trace_size);
+ static void writeCompressedTrace(uint8_t *raw_data, std::string file,
+ uint64 uncompressed_trace_size);
private:
// configuration parameters