Change the way module initialisation is done (#3252, #4417)
[ghc-hetmet.git] / includes / rts / Hpc.h
1 /* -----------------------------------------------------------------------------
2  *
3  * (c) The GHC Team, 2008-2009
4  *
5  * Haskell Program Coverage
6  *
7  * Do not #include this file directly: #include "Rts.h" instead.
8  *
9  * To understand the structure of the RTS headers, see the wiki:
10  *   http://hackage.haskell.org/trac/ghc/wiki/Commentary/SourceTree/Includes
11  *
12  * -------------------------------------------------------------------------- */
13
14 #ifndef RTS_HPC_H
15 #define RTS_HPC_H
16
17 // Simple linked list of modules
18 typedef struct _HpcModuleInfo {
19   char *modName;                // name of module
20   StgWord32 tickCount;          // number of ticks
21   StgWord32 hashNo;             // Hash number for this module's mix info
22   StgWord64 *tixArr;            // tix Array; local for this module
23   rtsBool from_file;            // data was read from the .tix file
24   struct _HpcModuleInfo *next;
25 } HpcModuleInfo;
26
27 void hs_hpc_module (char *modName,
28                     StgWord32 modCount,
29                     StgWord32 modHashNo,
30                     StgWord64 *tixArr);
31
32 HpcModuleInfo * hs_hpc_rootModule (void);
33
34 void startupHpc(void);
35 void exitHpc(void);
36
37 #endif /* RTS_HPC_H */