summaryrefslogtreecommitdiff
path: root/includes
diff options
context:
space:
mode:
authorandy@galois.com <unknown>2007-06-27 06:36:31 +0000
committerandy@galois.com <unknown>2007-06-27 06:36:31 +0000
commit5487e2226dac7574d951dce900176fc01efa4582 (patch)
tree743d57258638d84e8ff4e976a2fcdf21d963c298 /includes
parent9fde8e7e6e08680f2c6addc5f1ed2232db71b604 (diff)
downloadhaskell-5487e2226dac7574d951dce900176fc01efa4582.tar.gz
Cleaning up Hpc.c; adding support for reflection into Hpc.
Diffstat (limited to 'includes')
-rw-r--r--includes/RtsExternal.h17
1 files changed, 12 insertions, 5 deletions
diff --git a/includes/RtsExternal.h b/includes/RtsExternal.h
index 58b6ef0e39..30a5b56702 100644
--- a/includes/RtsExternal.h
+++ b/includes/RtsExternal.h
@@ -72,11 +72,18 @@ extern void freeHaskellFunctionPtr(void* ptr);
/* Hpc stuff */
extern int hs_hpc_module(char *modName,int modCount,int modHashNo,StgWord64 *tixArr);
-extern void hs_hpc_tick(int globIx,struct StgTSO_ *current_tso);
-extern void hs_hpc_raise_event(struct StgTSO_ *current_tso);
-extern void hs_hpc_thread_finished_event(struct StgTSO_ *current_tso);
-extern void hs_hpc_read(char *filename);
-extern void hs_hpc_write(char *filename);
+// Simple linked list of modules
+typedef struct _HpcModuleInfo {
+ char *modName; // name of module
+ int tickCount; // number of ticks
+ int tickOffset; // offset into a single large .tix Array
+ int hashNo; // Hash number for this module's mix info
+ StgWord64 *tixArr; // tix Array; local for this module
+ struct _HpcModuleInfo *next;
+} HpcModuleInfo;
+
+extern HpcModuleInfo *hs_hpc_rootModule(void);
+
#if defined(mingw32_HOST_OS)
extern int rts_InstallConsoleEvent ( int action, StgStablePtr *handler );