Use message-passing to implement throwTo in the RTS
[ghc-hetmet.git] / includes / stg / MiscClosures.h
index 074ed31..42e878f 100644 (file)
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  *
- * (c) The GHC Team, 1998-2004
+ * (c) The GHC Team, 1998-2009
  *
  * Declarations for various symbols exported by the RTS.
  *
  *
  * See wiki:Commentary/Compiler/Backends/PprC#Prototypes
  *
+ * Do not #include this file directly: #include "Rts.h" instead.
+ *
+ * To understand the structure of the RTS headers, see the wiki:
+ *   http://hackage.haskell.org/trac/ghc/wiki/Commentary/SourceTree/Includes
+ *
  * --------------------------------------------------------------------------*/
 
 #ifndef STGMISCCLOSURES_H
@@ -109,6 +114,8 @@ RTS_INFO(stg_MUT_ARR_PTRS_FROZEN0_info);
 RTS_INFO(stg_MUT_VAR_CLEAN_info);
 RTS_INFO(stg_MUT_VAR_DIRTY_info);
 RTS_INFO(stg_END_TSO_QUEUE_info);
+RTS_INFO(stg_MSG_WAKEUP_info);
+RTS_INFO(stg_MSG_THROWTO_info);
 RTS_INFO(stg_MUT_CONS_info);
 RTS_INFO(stg_catch_info);
 RTS_INFO(stg_PAP_info);
@@ -158,6 +165,8 @@ RTS_ENTRY(stg_MUT_ARR_PTRS_FROZEN0_entry);
 RTS_ENTRY(stg_MUT_VAR_CLEAN_entry);
 RTS_ENTRY(stg_MUT_VAR_DIRTY_entry);
 RTS_ENTRY(stg_END_TSO_QUEUE_entry);
+RTS_ENTRY(stg_MSG_WAKEUP_entry);
+RTS_ENTRY(stg_MSG_THROWTO_entry);
 RTS_ENTRY(stg_MUT_CONS_entry);
 RTS_ENTRY(stg_catch_entry);
 RTS_ENTRY(stg_PAP_entry);
@@ -186,9 +195,6 @@ RTS_ENTRY(stg_catch_retry_frame_ret);
 RTS_ENTRY(stg_atomically_frame_ret);
 RTS_ENTRY(stg_atomically_waiting_frame_ret);
 RTS_ENTRY(stg_catch_stm_frame_ret);
-RTS_ENTRY(stg_catch_frame_ret);
-RTS_ENTRY(stg_catch_entry);
-RTS_ENTRY(stg_raise_entry);
 
 /* closures */
 
@@ -203,8 +209,6 @@ RTS_CLOSURE(stg_END_STM_CHUNK_LIST_closure);
 RTS_CLOSURE(stg_NO_TREC_closure);
 
 RTS_ENTRY(stg_NO_FINALIZER_entry);
-RTS_ENTRY(stg_END_EXCEPTION_LIST_entry);
-RTS_ENTRY(stg_EXCEPTION_CONS_entry);
 
 #if IN_STG_CODE
 extern DLL_IMPORT_RTS StgWordArray stg_CHARLIKE_closure;
@@ -235,7 +239,6 @@ RTS_ENTRY(stg_sel_ret_5_upd_ret);
 RTS_ENTRY(stg_sel_ret_6_upd_ret);
 RTS_ENTRY(stg_sel_ret_7_upd_ret);
 RTS_ENTRY(stg_sel_ret_8_upd_ret);
-RTS_ENTRY(stg_sel_ret_8_upd_ret);
 RTS_ENTRY(stg_sel_ret_9_upd_ret);
 RTS_ENTRY(stg_sel_ret_10_upd_ret);
 RTS_ENTRY(stg_sel_ret_11_upd_ret);
@@ -287,7 +290,6 @@ RTS_ENTRY(stg_sel_ret_5_noupd_ret);
 RTS_ENTRY(stg_sel_ret_6_noupd_ret);
 RTS_ENTRY(stg_sel_ret_7_noupd_ret);
 RTS_ENTRY(stg_sel_ret_8_noupd_ret);
-RTS_ENTRY(stg_sel_ret_8_noupd_ret);
 RTS_ENTRY(stg_sel_ret_9_noupd_ret);
 RTS_ENTRY(stg_sel_ret_10_noupd_ret);
 RTS_ENTRY(stg_sel_ret_11_noupd_ret);
@@ -593,6 +595,7 @@ RTS_FUN(stg_getSparkzh);
 RTS_FUN(stg_noDuplicatezh);
 
 RTS_FUN(stg_traceCcszh);
+RTS_FUN(stg_traceEventzh);
 
 /* Other misc stuff */
 // See wiki:Commentary/Compiler/Backends/PprC#Prototypes
@@ -617,7 +620,7 @@ extern StgWord stg_ap_stack_entries[];
 extern StgWord stg_stack_save_entries[];
 
 // Storage.c
-extern unsigned int RTS_VAR(alloc_blocks);
+extern unsigned int RTS_VAR(g0);
 extern unsigned int RTS_VAR(alloc_blocks_lim);
 extern StgWord RTS_VAR(weak_ptr_list);
 extern StgWord RTS_VAR(atomic_modify_mutvar_mutex);