Use https links in user-facing startup and error messages
[ghc.git] / rts / HsFFI.c
index d59c7a4..e482932 100644 (file)
@@ -2,14 +2,16 @@
  *
  * (c) The GHC Team, 2005
  *
- * RTS entry points as mandated by the FFI addendum to the Haskell 98 report
+ * RTS entry points as mandated by the FFI section of the Haskell report
  *
  * ---------------------------------------------------------------------------*/
 
+#include "PosixSource.h"
 #include "HsFFI.h"
 #include "Rts.h"
-#include "Storage.h"
-#include "Stable.h"
+
+#include "StablePtr.h"
+#include "Task.h"
 
 // hs_init and hs_exit are defined in RtsStartup.c
 
@@ -26,6 +28,30 @@ hs_perform_gc(void)
     performMajorGC();
 }
 
+// Lock the stable pointer table
+void hs_lock_stable_ptr_table (void)
+{
+    stablePtrLock();
+}
+
+// Deprecated version of hs_lock_stable_ptr_table
+void hs_lock_stable_tables (void)
+{
+    stablePtrLock();
+}
+
+// Unlock the stable pointer table
+void hs_unlock_stable_ptr_table (void)
+{
+    stablePtrUnlock();
+}
+
+// Deprecated version of hs_unlock_stable_ptr_table
+void hs_unlock_stable_tables (void)
+{
+    stablePtrUnlock();
+}
+
 void
 hs_free_stable_ptr(HsStablePtr sp)
 {
@@ -35,8 +61,22 @@ hs_free_stable_ptr(HsStablePtr sp)
 }
 
 void
+hs_free_stable_ptr_unsafe(HsStablePtr sp)
+{
+    /* The cast is for clarity only, both HsStablePtr and StgStablePtr are
+       typedefs for void*. */
+    freeStablePtrUnsafe((StgStablePtr)sp);
+}
+
+void
 hs_free_fun_ptr(HsFunPtr fp)
 {
     /* I simply *love* all these similar names... */
     freeHaskellFunctionPtr(fp);
 }
+
+void
+hs_thread_done(void)
+{
+    freeMyTask();
+}