summaryrefslogtreecommitdiff
path: root/rts/CloneStack.h
diff options
context:
space:
mode:
Diffstat (limited to 'rts/CloneStack.h')
-rw-r--r--rts/CloneStack.h15
1 files changed, 12 insertions, 3 deletions
diff --git a/rts/CloneStack.h b/rts/CloneStack.h
index 5f1c22039d..7e43d090d1 100644
--- a/rts/CloneStack.h
+++ b/rts/CloneStack.h
@@ -1,9 +1,10 @@
/* ---------------------------------------------------------------------------
*
- * (c) The GHC Team, 2001-2021
+ * (c) The GHC Team, 2020-2021
*
- * Stack snapshotting.
- */
+ * Stack snapshotting and decoding. (Cloning and unwinding.)
+ *
+ *---------------------------------------------------------------------------*/
#pragma once
@@ -14,10 +15,18 @@ StgStack* cloneStack(Capability* capability, const StgStack* stack);
void sendCloneStackMessage(StgTSO *tso, HsStablePtr mvar);
+StgMutArrPtrs* decodeClonedStack(Capability *cap, StgStack* stack);
+
#include "BeginPrivate.h"
#if defined(THREADED_RTS)
void handleCloneStackMessage(MessageCloneStack *msg);
#endif
+StgWord getStackFrameCount(StgStack* stack);
+StgWord getStackChunkClosureCount(StgStack* stack);
+void copyPtrsToArray(Capability *cap, StgMutArrPtrs* arr, StgStack* stack);
+StgClosure* createPtrClosure(Capability* cap, InfoProvEnt* ipe);
+StgMutArrPtrs* allocateMutableArray(StgWord size);
+
#include "EndPrivate.h"