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