26da35d4cdc5f4b0f4e57c0532b612af020fced0
[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 tickOffset;         // offset into a single large .tix Array
22   StgWord32 hashNo;             // Hash number for this module's mix info
23   StgWord64 *tixArr;            // tix Array; local for this module
24   struct _HpcModuleInfo *next;
25 } HpcModuleInfo;
26
27 int 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 */