[project @ 2001-03-21 15:33:47 by simonmar]
[ghc-hetmet.git] / ghc / rts / Sparks.h
1 /* -----------------------------------------------------------------------------
2  * $Id: Sparks.h,v 1.2 2000/03/31 03:09:36 hwloidl 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 void         initSparkPools( void );
29 void         markSparkQueue( void );
30 StgClosure  *findSpark( void );
31 rtsBool      add_to_spark_queue( StgClosure *closure, StgSparkPool *pool );
32 void         markSparkQueue( void );
33
34 #endif