replace sparc-specific Int64 code with calls to platform-independent macros
[ghc-hetmet.git] / includes / rts / Types.h
1 /* -----------------------------------------------------------------------------
2  *
3  * (c) The GHC Team, 1998-2008
4  *
5  * RTS-specific types.
6  *
7  * ---------------------------------------------------------------------------*/
8
9 /* -------------------------------------------------------------------------
10    Generally useful typedefs
11    ------------------------------------------------------------------------- */
12
13 #ifndef RTS_TYPES_H
14 #define RTS_TYPES_H
15
16 typedef unsigned int  nat;           /* at least 32 bits (like int) */
17 typedef unsigned long lnat;          /* at least 32 bits            */
18 #ifndef _MSC_VER
19 typedef unsigned long long ullong;   /* at least 32 bits            */
20 typedef long long llong;
21 #else
22 typedef unsigned __int64   ullong;   /* at least 32 bits            */
23 typedef __int64 llong;
24 #endif
25
26 /* ullong (64|128-bit) type: only include if needed (not ANSI) */
27 #if defined(__GNUC__) 
28 #define LL(x) (x##LL)
29 #else
30 #define LL(x) (x##L)
31 #endif
32   
33 typedef enum { 
34     rtsFalse = 0, 
35     rtsTrue 
36 } rtsBool;
37
38 typedef struct StgClosure_   StgClosure;
39 typedef struct StgInfoTable_ StgInfoTable;
40 typedef struct StgTSO_       StgTSO;
41
42 #endif /* RTS_TYPES_H */