diff options
Diffstat (limited to 'src/sim')
-rw-r--r-- | src/sim/drain.hh | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/src/sim/drain.hh b/src/sim/drain.hh index 252022bc7..2f5d2d965 100644 --- a/src/sim/drain.hh +++ b/src/sim/drain.hh @@ -202,6 +202,29 @@ class Drainable */ virtual void drainResume(); + /** + * Write back dirty buffers to memory using functional writes. + * + * After returning, an object implementing this method should have + * written all its dirty data back to memory. This method is + * typically used to prepare a system with caches for + * checkpointing. + */ + virtual void memWriteback() {}; + + /** + * Invalidate the contents of memory buffers. + * + * When the switching to hardware virtualized CPU models, we need + * to make sure that we don't have any cached state in the system + * that might become stale when we return. This method is used to + * flush all such state back to main memory. + * + * @warn This does <i>not</i> cause any dirty state to be written + * back to memory. + */ + virtual void memInvalidate() {}; + State getDrainState() const { return _drainState; } protected: |