add Outputable instance for OccIfaceEq
[ghc-hetmet.git] / includes / RtsExternal.h
index 62764e1..b95da38 100644 (file)
@@ -43,6 +43,8 @@ extern int forkOS_createThread ( HsStablePtr entry );
 extern pid_t forkProcess(HsStablePtr *entry);
 extern HsBool rtsSupportsBoundThreads(void);
 extern StgInt newSpark (StgRegTable *reg, StgClosure *p);
+extern void stopTimer(void);
+extern unsigned int n_capabilities;
 
 /* grimy low-level support functions defined in StgPrimFloat.c */
 extern StgDouble __encodeDouble (I_ size, StgByteArray arr, I_ e);
@@ -71,10 +73,19 @@ extern void*  createAdjustor(int cconv, StgStablePtr hptr, StgFunPtr wptr,
 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 int hs_hpc_module(char *modName, StgWord32 modCount, StgWord32 modHashNo,StgWord64 *tixArr);
+// Simple linked list of modules
+typedef struct _HpcModuleInfo {
+  char *modName;               // name of module
+  StgWord32 tickCount;         // number of ticks
+  StgWord32 tickOffset;                // offset into a single large .tix Array
+  StgWord32 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 );
@@ -99,6 +110,11 @@ extern void setIOManagerPipe (int fd);
 
 extern void* allocateExec(unsigned int len);
 
+// Breakpoint stuff
+extern int rts_stop_next_breakpoint;
+extern int rts_stop_on_exception;
+extern HsStablePtr rts_breakpoint_io_action;
+
 /* -----------------------------------------------------------------------------
    Storage manager stuff exported
    -------------------------------------------------------------------------- */
@@ -108,5 +124,8 @@ extern void performMajorGC(void);
 extern HsInt64 getAllocations( void );
 extern void revertCAFs( void );
 extern void dirty_MUT_VAR(StgRegTable *reg, StgClosure *p);
+extern void dirty_MVAR(StgRegTable *reg, StgClosure *p);
+
+extern void dirty_TSO(StgClosure *tso);
 
 #endif /*  RTSEXTERNAL_H */