merge upstream HEAD
[ghc-hetmet.git] / rts / RtsUtils.h
1 /* -----------------------------------------------------------------------------
2  *
3  * (c) The GHC Team, 1998-2009
4  *
5  * General utility functions used in the RTS.
6  *
7  * ---------------------------------------------------------------------------*/
8
9 #ifndef RTSUTILS_H
10 #define RTSUTILS_H
11
12 #include "BeginPrivate.h"
13
14 /* -----------------------------------------------------------------------------
15  * (Checked) dynamic allocation
16  * -------------------------------------------------------------------------- */
17
18 void initAllocator(void);
19 void shutdownAllocator(void);
20
21 void *stgMallocBytes(int n, char *msg)
22     GNUC3_ATTRIBUTE(__malloc__);
23
24 void *stgReallocBytes(void *p, int n, char *msg);
25
26 void *stgCallocBytes(int n, int m, char *msg)
27      GNUC3_ATTRIBUTE(__malloc__);
28
29 void stgFree(void* p);
30
31 /* -----------------------------------------------------------------------------
32  * Misc other utilities
33  * -------------------------------------------------------------------------- */
34
35 void heapOverflow(void);
36
37 char *time_str(void);
38 char *showStgWord64(StgWord64, char *, rtsBool);
39
40 #ifdef DEBUG
41 void heapCheckFail( void );
42 #endif
43
44 void printRtsInfo(void);
45
46 /* Alternate to raise(3) for threaded rts, for OpenBSD */
47 int genericRaise(int sig);
48
49 void checkFPUStack(void);
50
51 #include "EndPrivate.h"
52
53 #endif /* RTSUTILS_H */