PPC: Implement SMP primitives using gcc built-ins
[ghc.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://ghc.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 */