[project @ 2003-12-15 14:31:48 by simonmar]
[ghc-hetmet.git] / ghc / rts / Sparks.h
index cd62971..25a9d77 100644 (file)
@@ -1,14 +1,39 @@
 /* -----------------------------------------------------------------------------
- * $Id: Sparks.h,v 1.1 2000/01/12 15:15:18 simonmar Exp $
+ * $Id: Sparks.h,v 1.4 2002/01/24 02:06:49 sof Exp $
  *
  * (c) The GHC Team, 2000
  *
- * Sparking support for PAR and SMP versions of the RTS.
- *
+ * Sparking support for GRAN, PAR and SMP versions of the RTS.
+ * 
  * ---------------------------------------------------------------------------*/
 
-void         initSparkPools( void );
+#if defined(GRAN)
+
+void      findLocalSpark (rtsEvent *event, rtsBool *found_res, rtsSparkQ *spark_res);
+rtsBool   activateSpark (rtsEvent *event, rtsSparkQ spark);
+rtsSpark *newSpark(StgClosure *node, nat name, nat gran_info, 
+                  nat size_info, nat par_info, nat local);
+void      add_to_spark_queue(rtsSpark *spark);
+rtsSpark *delete_from_sparkq (rtsSpark *spark, PEs p, rtsBool dispose_too);
+void     disposeSpark(rtsSpark *spark);
+void     disposeSparkQ(rtsSparkQ spark);
+void     print_spark(rtsSpark *spark);
+void      print_sparkq(PEs proc);
+void     print_sparkq_stats(void);
+nat      spark_queue_len(PEs proc);
+void      markSparkQueue(void);
+
+#elif defined(PAR) || defined(SMP)
+
+StgClosure  *findSpark( rtsBool );
+rtsBool      initSparkPools( void );
 void         markSparkQueue( void );
-StgClosure * findSpark( void );
+#if defined(PAR)
+StgTSO      *activateSpark (rtsSpark spark) ;
 rtsBool      add_to_spark_queue( StgClosure *closure, StgSparkPool *pool );
 void         markSparkQueue( void );
+nat          spark_queue_len( StgSparkPool *pool );
+void         disposeSpark( StgClosure *spark );
+#endif
+
+#endif