[project @ 2001-10-27 22:05:48 by sof]
[ghc-hetmet.git] / ghc / includes / StgMiscClosures.h
index 0aaed9f..eeaaf3a 100644 (file)
@@ -1,5 +1,5 @@
 /* -----------------------------------------------------------------------------
- * $Id: StgMiscClosures.h,v 1.36 2001/02/12 04:55:33 chak Exp $
+ * $Id: StgMiscClosures.h,v 1.39 2001/07/09 19:45:16 sof Exp $
  *
  * (c) The GHC Team, 1998-1999
  *
@@ -65,24 +65,30 @@ STGFUN(stg_interp_constr7_entry);
 STGFUN(stg_interp_constr8_entry);
 
 /* Magic glue code for when compiled code returns a value in R1/F1/D1
-   to the interpreter. */
+   or a VoidRep to the interpreter. */
 extern DLL_IMPORT_RTS const vec_info_8 stg_ctoi_ret_R1p_info;
 extern DLL_IMPORT_RTS const vec_info_8 stg_ctoi_ret_R1n_info;
 extern DLL_IMPORT_RTS const vec_info_8 stg_ctoi_ret_F1_info;
 extern DLL_IMPORT_RTS const vec_info_8 stg_ctoi_ret_D1_info;
+extern DLL_IMPORT_RTS const vec_info_8 stg_ctoi_ret_V_info;
 
 /* Used by the interpreter to return an unboxed value on the stack to
    compiled code. */
-extern DLL_IMPORT_RTS const StgInfoTable stg_gc_unbx_r1_info;
-extern DLL_IMPORT_RTS const StgInfoTable stg_gc_f1_info;
-extern DLL_IMPORT_RTS const StgInfoTable stg_gc_d1_info;
-
+extern DLL_IMPORT_RTS const StgInfoTable stg_gc_unbx_r1_ret_info;
+extern DLL_IMPORT_RTS const StgInfoTable stg_gc_f1_ret_info;
+extern DLL_IMPORT_RTS const StgInfoTable stg_gc_d1_ret_info;
+
+/* this is the NIL ptr for a TSO queue (e.g. runnable queue) */
+#define END_TSO_QUEUE  ((StgTSO *)(void*)&stg_END_TSO_QUEUE_closure)
+/* this is the NIL ptr for a list CAFs */
+#define END_ECAF_LIST   ((StgCAF *)(void*)&stg_END_TSO_QUEUE_closure)
 #if defined(PAR) || defined(GRAN)
 /* this is the NIL ptr for a blocking queue */
-# define END_BQ_QUEUE  ((StgBlockingQueueElement *)(void*)&END_TSO_QUEUE_closure)
+# define END_BQ_QUEUE  ((StgBlockingQueueElement *)(void*)&stg_END_TSO_QUEUE_closure)
 /* this is the NIL ptr for a blocked fetch queue (as in PendingFetches in GUM) */
-# define END_BF_QUEUE  ((StgBlockedFetch *)(void*)&END_TSO_QUEUE_closure)
+# define END_BF_QUEUE  ((StgBlockedFetch *)(void*)&stg_END_TSO_QUEUE_closure)
 #endif
+/* ToDo?: different name for end of sleeping queue ? -- HWL */
 
 /* info tables */
 
@@ -106,6 +112,9 @@ extern DLL_IMPORT_RTS const StgInfoTable stg_SE_CAF_BLACKHOLE_info;
 #if defined(PAR) || defined(GRAN)
 extern DLL_IMPORT_RTS const StgInfoTable stg_RBH_info;
 #endif
+#if defined(PAR)
+extern DLL_IMPORT_RTS const StgInfoTable stg_FETCH_ME_BQ_info;
+#endif
 extern DLL_IMPORT_RTS const StgInfoTable stg_BCO_info;
 extern DLL_IMPORT_RTS const StgInfoTable stg_EVACUATED_info;
 extern DLL_IMPORT_RTS const StgInfoTable stg_FOREIGN_info;