add readTVarIO :: TVar a -> IO a
[ghc-hetmet.git] / includes / mkDerivedConstants.c
index f87db37..3aa7625 100644 (file)
 
 #define OFFSET(s_type, field) ((size_t)&(((s_type*)0)->field))
 
+#ifdef mingw32_HOST_OS
+#define SIZET_FMT "d"
+#else
+#define SIZET_FMT "zd"
+#endif
+
 #if defined(GEN_HASKELL)
-#define def_offset(str, offset) \
-    printf("oFFSET_" str " = %zd::Int\n", offset);
+#define def_offset(str, offset)                          \
+    printf("oFFSET_" str " :: Int\n");                   \
+    printf("oFFSET_" str " = %" SIZET_FMT "\n", offset);
 #else
 #define def_offset(str, offset) \
-    printf("#define OFFSET_" str " %zd\n", offset);
+    printf("#define OFFSET_" str " %" SIZET_FMT "\n", offset);
 #endif
 
 #if defined(GEN_HASKELL)
@@ -81,8 +88,9 @@
     struct_field_macro(str)
 
 #if defined(GEN_HASKELL)
-#define def_size(str, size) \
-    printf("sIZEOF_" str " = %d::Int\n", size);
+#define def_size(str, size)                \
+    printf("sIZEOF_" str " :: Int\n");     \
+    printf("sIZEOF_" str " = %d\n", size);
 #else
 #define def_size(str, size) \
     printf("#define SIZEOF_" str " %d\n", size);
@@ -224,6 +232,7 @@ main(int argc, char *argv[])
     field_offset(Capability, r);
     field_offset(Capability, lock);
     struct_field(Capability, mut_lists);
+    struct_field(Capability, context_switch);
 
     struct_field(bdescr, start);
     struct_field(bdescr, free);
@@ -267,7 +276,7 @@ main(int argc, char *argv[])
     closure_field(StgArrWords, words);
     closure_payload(StgArrWords, payload);
 
-    closure_field(StgTSO, link);
+    closure_field(StgTSO, _link);
     closure_field(StgTSO, global_link);
     closure_field(StgTSO, what_next);
     closure_field(StgTSO, why_blocked);
@@ -344,6 +353,8 @@ main(int argc, char *argv[])
     closure_field(StgTVarWatchQueue, next_queue_entry);
     closure_field(StgTVarWatchQueue, prev_queue_entry);
 
+    closure_field(StgTVar, current_value);
+
     closure_size(StgWeak);
     closure_field(StgWeak,link);
     closure_field(StgWeak,key);