[project @ 2002-09-05 08:58:55 by simonmar]
[ghc-hetmet.git] / ghc / includes / mkNativeHdr.c
index f89a22d..8bf707b 100644 (file)
@@ -1,5 +1,5 @@
 /* --------------------------------------------------------------------------
- * $Id: mkNativeHdr.c,v 1.4 2000/05/15 14:44:42 simonmar Exp $
+ * $Id: mkNativeHdr.c,v 1.10 2002/07/21 11:46:34 panne Exp $
  *
  * (c) The GHC Team, 1992-1998
  *
@@ -9,6 +9,8 @@
 
 #include "Stg.h"
 
+#include <stdio.h>
+
 #define OFFSET(table, x) ((StgUnion *) &(x) - (StgUnion *) (&table))
 
 #define OFFSET_R1    OFFSET(RegTable, RegTable.rR1)
 #define OFFSET_HpLim OFFSET(RegTable, RegTable.rHpLim)
 #define OFFSET_CurrentTSO OFFSET(RegTable, RegTable.rCurrentTSO)
 #define OFFSET_CurrentNursery OFFSET(RegTable, RegTable.rCurrentNursery)
+#define OFFSET_HpAlloc OFFSET(RegTable, RegTable.rHpAlloc)
+
+#define FUN_OFFSET(sym) ((StgPtr)&cap.f.sym - (StgPtr)&cap.r)
+
+#define OFFSET_stgChk0       FUN_OFFSET(stgChk0)
+#define OFFSET_stgChk1       FUN_OFFSET(stgChk1)
+#define OFFSET_stgGCEnter1   FUN_OFFSET(stgGCEnter1)
+#define OFFSET_stgUpdatePAP  FUN_OFFSET(stgUpdatePAP)
+
+#define OFFW_Capability_r  OFFSET(cap, cap.r)
 
 #define TSO_SP       OFFSET(tso, tso.sp)
-#define TSO_SPLIM    OFFSET(tso, tso.splim)
 #define TSO_SU       OFFSET(tso, tso.su)
+#define TSO_STACK    OFFSET(tso, tso.stack)
 
 #define BDESCR_START OFFSET(bd, bd.start)
 #define BDESCR_FREE  OFFSET(bd, bd.free)
+#define BDESCR_BLOCKS OFFSET(bd, bd.blocks)
 
 StgRegTable RegTable;
+
+Capability cap;
+
 StgTSO tso;
 bdescr bd;
 
@@ -80,6 +96,16 @@ main()
     printf("#define OFFSET_HpLim %d\n", OFFSET_HpLim);
     printf("#define OFFSET_CurrentTSO %d\n", OFFSET_CurrentTSO);
     printf("#define OFFSET_CurrentNursery %d\n", OFFSET_CurrentNursery);
+    printf("#define OFFSET_HpAlloc %d\n", OFFSET_HpAlloc);
+
+    printf("#define OFFSET_stgChk0 (%d)\n", OFFSET_stgChk0);
+    printf("#define OFFSET_stgChk1 (%d)\n", OFFSET_stgChk1);
+    printf("#define OFFSET_stgGCEnter1 (%d)\n", OFFSET_stgGCEnter1);
+    printf("#define OFFSET_stgUpdatePAP (%d)\n", OFFSET_stgUpdatePAP);
+
+    printf("\n-- Offset of the .r (StgRegTable) field in a Capability\n");
+
+    printf("#define OFFW_Capability_r (%d)\n", OFFW_Capability_r);
 
     printf("\n-- Storage Manager offsets for the Native Code Generator\n");
 
@@ -87,12 +113,13 @@ main()
 
     printf("#define TSO_SP %d\n", TSO_SP);
     printf("#define TSO_SU %d\n", TSO_SU);
-    printf("#define TSO_SPLIM %d\n", TSO_SPLIM);
+    printf("#define TSO_STACK %d\n", TSO_STACK);
 
     printf("\n-- Block descriptor offsets for the Native Code Generator\n");
 
     printf("#define BDESCR_START %d\n", BDESCR_START);
     printf("#define BDESCR_FREE %d\n", BDESCR_FREE);
+    printf("#define BDESCR_BLOCKS %d\n", BDESCR_BLOCKS);
 
     printf("\n-- FILE size for the Native Code Generator\n");