[project @ 2004-02-12 02:04:59 by mthomas]
[ghc-hetmet.git] / ghc / rts / Sparks.h
1 /* -----------------------------------------------------------------------------
2  * $Id: Sparks.h,v 1.4 2002/01/24 02:06:49 sof Exp $
3  *
4  * (c) The GHC Team, 2000
5  *
6  * Sparking support for GRAN, PAR and SMP versions of the RTS.
7  * 
8  * ---------------------------------------------------------------------------*/
9
10 #if defined(GRAN)
11
12 void      findLocalSpark (rtsEvent *event, rtsBool *found_res, rtsSparkQ *spark_res);
13 rtsBool   activateSpark (rtsEvent *event, rtsSparkQ spark);
14 rtsSpark *newSpark(StgClosure *node, nat name, nat gran_info, 
15                    nat size_info, nat par_info, nat local);
16 void      add_to_spark_queue(rtsSpark *spark);
17 rtsSpark *delete_from_sparkq (rtsSpark *spark, PEs p, rtsBool dispose_too);
18 void      disposeSpark(rtsSpark *spark);
19 void      disposeSparkQ(rtsSparkQ spark);
20 void      print_spark(rtsSpark *spark);
21 void      print_sparkq(PEs proc);
22 void      print_sparkq_stats(void);
23 nat       spark_queue_len(PEs proc);
24 void      markSparkQueue(void);
25
26 #elif defined(PAR) || defined(SMP)
27
28 StgClosure  *findSpark( rtsBool );
29 rtsBool      initSparkPools( void );
30 void         markSparkQueue( void );
31 #if defined(PAR)
32 StgTSO      *activateSpark (rtsSpark spark) ;
33 rtsBool      add_to_spark_queue( StgClosure *closure, StgSparkPool *pool );
34 void         markSparkQueue( void );
35 nat          spark_queue_len( StgSparkPool *pool );
36 void         disposeSpark( StgClosure *spark );
37 #endif
38
39 #endif