[project @ 2003-08-27 15:18:29 by panne]
[ghc-hetmet.git] / ghc / includes / HsFFI.h
index 2b6f353..57a0be3 100644 (file)
@@ -1,5 +1,5 @@
 /* -----------------------------------------------------------------------------
- * $Id: HsFFI.h,v 1.14 2001/03/28 18:48:46 qrczak Exp $
+ * $Id: HsFFI.h,v 1.18 2003/01/28 16:30:07 simonmar Exp $
  *
  * (c) The GHC Team, 2000
  *
 #ifndef HSFFI_H
 #define HSFFI_H
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 /* get types from GHC's runtime system */
 #include "config.h"
 #include "StgTypes.h"
@@ -89,6 +93,13 @@ typedef void*                        HsForeignObj;   /* DEPRECATED */
 #define HS_CHAR_MIN            0
 #define HS_CHAR_MAX            0x10FFFF
 
+/* is it true or not?  */
+#define HS_BOOL_FALSE           0
+#define HS_BOOL_TRUE            1
+
+#define HS_BOOL_MIN             HS_BOOL_FALSE
+#define HS_BOOL_MAX             HS_BOOL_TRUE
+
 /* this mirrors the distinction of cases in StgTypes.h */
 #if   SIZEOF_VOID_P == 8
 #define HS_INT_MIN             __INT64_MIN
@@ -137,4 +148,20 @@ typedef void*                      HsForeignObj;   /* DEPRECATED */
 #define HS_DOUBLE_MAX_EXP      DBL_MAX_EXP
 #define HS_DOUBLE_MAX_10_EXP   DBL_MAX_10_EXP
 
+extern void hs_init     (int *argc, char **argv[]);
+extern void hs_exit     (void);
+extern void hs_set_argv (int argc, char *argv[]);
+extern void hs_add_root (void (*init_root)(void));
+
+extern void hs_perform_gc (void);
+
+extern void hs_free_stable_ptr (HsStablePtr *sp);
+extern void hs_free_fun_ptr    (HsFunPtr *fp);
+
+/* -------------------------------------------------------------------------- */
+
+#ifdef __cplusplus
+}
+#endif
+
 #endif /* HSFFI_H */