Bug fix in the new HscMain code.
[ghc-hetmet.git] / ghc / includes / StgTypes.h
index 2492046..ac2f78e 100644 (file)
@@ -1,10 +1,9 @@
 /* -----------------------------------------------------------------------------
- * $Id: StgTypes.h,v 1.20 2003/11/12 17:27:05 sof Exp $
  *
- * (c) The GHC Team, 1998-2000
+ * (c) The GHC Team, 1998-2004
  *
  * Various C datatypes used in the run-time system.  This is the
- * lowest-level include file, after config.h and Derived.h.
+ * lowest-level include file, after ghcconfig.h and RtsConfig.h.
  *
  * This module should define types *only*, all beginning with "Stg".
  *
@@ -27,7 +26,7 @@
 
  * WARNING: Keep this file, MachDeps.h, and HsFFI.h in synch!
  *
- * NOTE: assumes #include "config.h"
+ * NOTE: assumes #include "ghcconfig.h"
  * 
  * Works with or without _POSIX_SOURCE.
  *
@@ -36,8 +35,6 @@
 #ifndef STGTYPES_H
 #define STGTYPES_H
 
-#include "Derived.h"
-
 /*
  * First, platform-dependent definitions of size-specific integers.
  * Assume for now that the int type is 32 bits.
@@ -51,7 +48,6 @@ typedef unsigned char            StgWord8;
 typedef signed   short           StgInt16;
 typedef unsigned short           StgWord16;
 
-
 #if SIZEOF_UNSIGNED_INT == 4
 typedef signed   int             StgInt32;
 typedef unsigned int             StgWord32;
@@ -86,11 +82,13 @@ typedef unsigned __int64       StgWord64;
 #if SIZEOF_VOID_P == 8
 typedef StgInt64           StgInt;
 typedef StgWord64          StgWord;
+typedef StgInt32           StgHalfInt;
 typedef StgWord32          StgHalfWord;
 #else
 #if SIZEOF_VOID_P == 4
 typedef StgInt32           StgInt; 
 typedef StgWord32          StgWord;
+typedef StgInt16           StgHalfInt;
 typedef StgWord16          StgHalfWord;
 #else
 #error GHC untested on this architecture: sizeof(void *) != 4 or 8
@@ -116,6 +114,7 @@ typedef void               StgVoid;
 typedef struct StgClosure_ StgClosure;
 typedef StgClosure*        StgClosurePtr;
 typedef StgWord*           StgPtr;           /* pointer into closure       */
+typedef StgWord volatile*  StgVolatilePtr;   /* pointer to volatile word   */
 typedef StgWord            StgOffset;        /* byte offset within closure */
                            
 typedef struct StgTSO_*    StgTSOPtr;
@@ -150,18 +149,4 @@ typedef void*                 StgStablePtr;
 typedef void  *(*(*StgFunPtr)(void))(void);
 typedef StgFunPtr StgFun(void);
 
-typedef union {
-    StgWord        w;
-    StgAddr        a;
-    StgChar        c;
-    StgInt8        i8;
-    StgFloat       f;
-    StgInt         i;
-    StgPtr         p;
-    StgClosurePtr  cl;
-    StgStackOffset offset;     /* unused? */
-    StgByteArray   b;
-    StgTSOPtr      t;
-} StgUnion;
-
 #endif /* STGTYPES_H */