[project @ 2003-06-19 10:42:24 by simonmar]
[ghc-hetmet.git] / ghc / includes / PrimOps.h
index 61dcf84..ecc82bc 100644 (file)
@@ -1,5 +1,5 @@
 /* -----------------------------------------------------------------------------
- * $Id: PrimOps.h,v 1.96 2002/07/17 09:21:48 simonmar Exp $
+ * $Id: PrimOps.h,v 1.102 2003/06/19 10:42:24 simonmar Exp $
  *
  * (c) The GHC Team, 1998-2000
  *
@@ -218,7 +218,7 @@ extern StgInt    isFloatNegativeZero(StgFloat f);
    -------------------------------------------------------------------------- */
 
 EXTFUN_RTS(newMutVarzh_fast);
-
+EXTFUN_RTS(atomicModifyMutVarzh_fast);
 
 /* -----------------------------------------------------------------------------
    MVar PrimOps.
@@ -241,6 +241,10 @@ EXTFUN_RTS(tryPutMVarzh_fast);
 EXTFUN_RTS(waitReadzh_fast);
 EXTFUN_RTS(waitWritezh_fast);
 EXTFUN_RTS(delayzh_fast);
+#ifdef mingw32_TARGET_OS
+EXTFUN_RTS(asyncReadzh_fast);
+EXTFUN_RTS(asyncWritezh_fast);
+#endif
 
 
 /* -----------------------------------------------------------------------------
@@ -249,8 +253,9 @@ EXTFUN_RTS(delayzh_fast);
 
 EXTFUN_RTS(catchzh_fast);
 EXTFUN_RTS(raisezh_fast);
+EXTFUN_RTS(raiseIOzh_fast);
 
-extern void stg_exit(I_ n)  __attribute__ ((noreturn));
+extern void stg_exit(int n)  __attribute__ ((noreturn));
 
 
 /* -----------------------------------------------------------------------------
@@ -276,10 +281,8 @@ EXTFUN_RTS(unblockAsyncExceptionszh_fast);
 EXTFUN_RTS(myThreadIdzh_fast);
 EXTFUN_RTS(labelThreadzh_fast);
 
-extern int cmp_thread(const StgTSO *tso1, const StgTSO *tso2);
-extern int rts_getThreadId(const StgTSO *tso);
-extern void labelThread(StgTSO *tso, char *label);
-
+extern int cmp_thread(StgPtr tso1, StgPtr tso2);
+extern int rts_getThreadId(StgPtr tso);
 
 /* -----------------------------------------------------------------------------
    Weak Pointer PrimOps.
@@ -316,21 +319,6 @@ EXTFUN_RTS(mkForeignObjzh_fast);
 EXTFUN_RTS(newBCOzh_fast);
 EXTFUN_RTS(mkApUpd0zh_fast);
 
-
-/* -----------------------------------------------------------------------------
-   Signal handling.  Not really primops, but called directly from Haskell. 
-   -------------------------------------------------------------------------- */
-
-#define STG_SIG_DFL  (-1)
-#define STG_SIG_IGN  (-2)
-#define STG_SIG_ERR  (-3)
-#define STG_SIG_HAN  (-4)
-
-extern StgInt stg_sig_install (StgInt, StgInt, StgStablePtr, void *);
-#define stg_sig_default(sig,mask) stg_sig_install(sig,STG_SIG_DFL,0,(void *)mask)
-#define stg_sig_ignore(sig,mask) stg_sig_install(sig,STG_SIG_IGN,0,(void *)mask)
-#define stg_sig_catch(sig,ptr,mask) stg_sig_install(sig,STG_SIG_HAN,ptr,(void *)mask)
-
 /* ------------------------------------------------------------------------
    Parallel PrimOps