Changing internal data structures used by Hpc
[ghc-hetmet.git] / includes / RtsExternal.h
index a105194..62764e1 100644 (file)
 /* The standard FFI interface */
 #include "HsFFI.h"
 
+#ifdef HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+
 /* -----------------------------------------------------------------------------
    Functions exported by the RTS for use in Stg code
    -------------------------------------------------------------------------- */
@@ -26,8 +30,8 @@ extern void newCAF(StgClosure*);
 #endif
 
 /* ToDo: remove? */
-extern I_ genSymZh(void);
-extern I_ resetGenSymZh(void);
+extern HsInt genSymZh(void);
+extern HsInt resetGenSymZh(void);
 
 /* Alternate to raise(3) for threaded rts, for OpenBSD */
 extern int genericRaise(int sig);
@@ -36,8 +40,8 @@ extern int genericRaise(int sig);
 extern int cmp_thread(StgPtr tso1, StgPtr tso2);
 extern int rts_getThreadId(StgPtr tso);
 extern int forkOS_createThread ( HsStablePtr entry );
-extern StgInt forkProcess(HsStablePtr *entry);
-extern StgBool rtsSupportsBoundThreads(void);
+extern pid_t forkProcess(HsStablePtr *entry);
+extern HsBool rtsSupportsBoundThreads(void);
 extern StgInt newSpark (StgRegTable *reg, StgClosure *p);
 
 /* grimy low-level support functions defined in StgPrimFloat.c */
@@ -67,10 +71,10 @@ 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,StgWord64 *tixArr);
+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_event(char *msg,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);
 
 #if defined(mingw32_HOST_OS)
 extern int  rts_InstallConsoleEvent ( int action, StgStablePtr *handler );
@@ -87,8 +91,8 @@ extern StgInt *signal_handlers;
 
 #if defined(mingw32_HOST_OS)
 void *getIOManagerEvent (void);
-StgWord32 readIOManagerEvent (void);
-void sendIOManagerEvent (StgWord32 event);
+HsWord32 readIOManagerEvent (void);
+void sendIOManagerEvent (HsWord32 event);
 #else
 extern void setIOManagerPipe (int fd);
 #endif