[project @ 2004-11-08 12:26:52 by simonmar]
[ghc-hetmet.git] / ghc / includes / RtsTypes.h
index eab293d..4a30ef9 100644 (file)
@@ -1,5 +1,5 @@
 /*
-  Time-stamp: <Mon Mar 05 2001 22:39:27 Stardate: [-30]6284.72 hwloidl>
+  Time-stamp: <2004-11-08 12:17:01 simonmar>
 
   RTS specific types.
 */
 #ifndef RTS_TYPES_H
 #define RTS_TYPES_H
 
+#if SIZEOF_VOID_P == 8
+typedef unsigned long nat;           /* at least 32 bits (like int) */
+#else
 typedef unsigned int  nat;           /* at least 32 bits (like int) */
+#endif
 typedef unsigned long lnat;          /* at least 32 bits            */
+#ifndef _MSC_VER
 typedef unsigned long long ullong;   /* at least 32 bits            */
+typedef long long llong;
+#else
+typedef unsigned __int64   ullong;   /* at least 32 bits            */
+typedef __int64 llong;
+#endif
 
 /* ullong (64|128-bit) type: only include if needed (not ANSI) */
 #if defined(__GNUC__) 
@@ -31,6 +41,8 @@ typedef enum {
    Types specific to the parallel runtime system.
 */
 
+typedef ullong        rtsTime;
+
 #if defined(PAR)
 /* types only needed in the parallel system */
 typedef struct hashtable ParHashTable;
@@ -40,7 +52,6 @@ typedef struct hashlist ParHashList;
 // typedef W_ TIME;
 // typedef GlobalTaskId Proc;
 typedef int           GlobalTaskId;
-typedef ullong        rtsTime;
 typedef GlobalTaskId  PEs;
 typedef unsigned int  rtsWeight;
 typedef int           rtsPacket;