Go to the documentation of this file.
38 #ifndef __SIM_DRAIN_HH__
39 #define __SIM_DRAIN_HH__
void registerDrainable(Drainable *obj)
void signalDrainDone()
Notify the DrainManager that a Drainable object has finished draining.
@ Running
Running normally.
bool tryDrain()
Try to drain the system.
DrainState dmDrain()
DrainManager interface to request a drain operation.
bool isDrained() const
Check if the system is drained.
void resume()
Resume normal simulation in a Drained system.
virtual void notifyFork()
Notify a child process of a fork.
@ Drained
Buffers drained, ready for serialization/handover.
static DrainManager _instance
Singleton instance of the drain manager.
DrainState
Object drain/handover states.
virtual void drainResume()
Resume execution after a successful drain.
DrainState _drainState
Current drain state of the object.
std::atomic_uint _count
Number of objects still draining.
void unregisterDrainable(Drainable *obj)
Interface for objects that might require draining before checkpointing.
virtual DrainState drain()=0
Draining is the process of clearing out the states of SimObjects.These are the SimObjects that are pa...
void signalDrainDone() const
Signal that an object is drained.
bool allInState(DrainState state) const
Helper function to check if all Drainable objects are in a specific state.
DrainState _state
Global simulator drain state.
DrainState drainState() const
Return the current drain state of an object.
static DrainManager & instance()
Get the singleton DrainManager instance.
DrainState state() const
Get the simulators global drain state.
void dmDrainResume()
DrainManager interface to request a resume operation.
void preCheckpointRestore()
Run state fixups before a checkpoint restore operation.
DrainManager & _drainManager
Convenience reference to the drain manager.
std::vector< Drainable * > _allDrainable
Set of all drainable objects.
@ Resuming
Transient state while the simulator is resuming.
std::mutex globalLock
Lock protecting the set of drainable objects.
size_t drainableCount() const
Thread-safe helper function to get the number of Drainable objects in a system.
@ Draining
Draining buffers pending serialization/handover.
Generated on Wed Sep 30 2020 14:02:14 for gem5 by doxygen 1.8.17