summaryrefslogtreecommitdiff
path: root/includes/rts
diff options
context:
space:
mode:
authorMatthew Pickering <matthewtpickering@gmail.com>2020-12-08 15:44:35 +0000
committerMatthew Pickering <matthewtpickering@gmail.com>2020-12-09 08:02:29 +0000
commit1146e18701f07311ef267633699610f853d39cd6 (patch)
treef3a5433ba1093c686438182f6adb01b456545950 /includes/rts
parent8fac4b9333ef3607e75b4520d847054316cb8c2d (diff)
downloadhaskell-wip/generic-block-traversal.tar.gz
rts: Add generic block traversal function, listAllBlockswip/generic-block-traversal
This function is exposed in the RtsAPI.h so that external users have a blessed way to traverse all the different `bdescr`s which are known by the RTS. The main motivation is to use this function in ghc-debug but avoid having to expose the internal structure of a Capability in the API.
Diffstat (limited to 'includes/rts')
-rw-r--r--includes/rts/storage/GC.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/includes/rts/storage/GC.h b/includes/rts/storage/GC.h
index 6bc7157bd6..6acfd10cea 100644
--- a/includes/rts/storage/GC.h
+++ b/includes/rts/storage/GC.h
@@ -163,6 +163,9 @@ extern generation * generations;
extern generation * g0;
extern generation * oldest_gen;
+typedef void(*ListBlocksCb)(void *user, bdescr *);
+void listAllBlocks(ListBlocksCb cb, void *user);
+
/* -----------------------------------------------------------------------------
Generic allocation