[project @ 2000-11-01 11:41:47 by simonmar]
[ghc-hetmet.git] / ghc / rts / RtsAPI.c
index 992be89..de6de62 100644 (file)
@@ -1,5 +1,5 @@
 /* ----------------------------------------------------------------------------
- * $Id: RtsAPI.c,v 1.17 2000/04/26 10:17:41 simonmar Exp $
+ * $Id: RtsAPI.c,v 1.20 2000/08/29 13:34:21 qrczak Exp $
  *
  * (c) The GHC Team, 1998-2000
  *
    Building Haskell objects from C datatypes.
    ------------------------------------------------------------------------- */
 HaskellObj
-rts_mkChar (char c)
+rts_mkChar (unsigned int c)
 {
   StgClosure *p = (StgClosure *)allocate(CONSTR_sizeW(0,1));
   p->header.info = Czh_con_info;
-  p->payload[0]  = (StgClosure *)((StgInt)c);
+  p->payload[0]  = (StgClosure *)(StgChar)c;
   return p;
 }
 
@@ -75,7 +75,7 @@ rts_mkInt32 (int i)
 }
 
 HaskellObj
-rts_mkInt64 (long long int i)
+rts_mkInt64 (HsInt64_ i)
 {
   long long *tmp;
   StgClosure *p = (StgClosure *)allocate(CONSTR_sizeW(0,2));
@@ -126,7 +126,7 @@ rts_mkWord32 (unsigned int w)
 }
 
 HaskellObj
-rts_mkWord64 (unsigned long long w)
+rts_mkWord64 (HsWord64_ w)
 {
   unsigned long long *tmp;
 
@@ -199,7 +199,7 @@ rts_apply (HaskellObj f, HaskellObj arg)
   SET_HDR(ap, &AP_UPD_info, CCS_SYSTEM);
   ap->n_args = 1;
   ap->fun    = f;
-  ap->payload[0] = (P_)arg;
+  ap->payload[0] = arg;
   return (StgClosure *)ap;
 }
 
@@ -207,12 +207,12 @@ rts_apply (HaskellObj f, HaskellObj arg)
    Deconstructing Haskell objects
    ------------------------------------------------------------------------- */
 
-char
+unsigned int
 rts_getChar (HaskellObj p)
 {
   if ( p->header.info == Czh_con_info || 
        p->header.info == Czh_static_info) {
-    return (char)(StgWord)(p->payload[0]);
+    return (StgChar)(StgWord)(p->payload[0]);
   } else {
     barf("getChar: not a Char");
   }