/* ----------------------------------------------------------------------------
- * $Id: RtsAPI.c,v 1.20 2000/08/29 13:34:21 qrczak Exp $
+ * $Id: RtsAPI.c,v 1.21 2000/11/07 17:05:47 simonmar Exp $
*
* (c) The GHC Team, 1998-2000
*
Building Haskell objects from C datatypes.
------------------------------------------------------------------------- */
HaskellObj
-rts_mkChar (unsigned int c)
+rts_mkChar (HsChar c)
{
StgClosure *p = (StgClosure *)allocate(CONSTR_sizeW(0,1));
p->header.info = Czh_con_info;
}
HaskellObj
-rts_mkInt (int i)
+rts_mkInt (HsInt i)
{
StgClosure *p = (StgClosure *)allocate(CONSTR_sizeW(0,1));
p->header.info = Izh_con_info;
}
HaskellObj
-rts_mkInt8 (int i)
+rts_mkInt8 (HsInt8 i)
{
StgClosure *p = (StgClosure *)allocate(CONSTR_sizeW(0,1));
/* This is a 'cheat', using the static info table for Ints,
}
HaskellObj
-rts_mkInt16 (int i)
+rts_mkInt16 (HsInt16 i)
{
StgClosure *p = (StgClosure *)allocate(CONSTR_sizeW(0,1));
/* This is a 'cheat', using the static info table for Ints,
}
HaskellObj
-rts_mkInt32 (int i)
+rts_mkInt32 (HsInt32 i)
{
StgClosure *p = (StgClosure *)allocate(CONSTR_sizeW(0,1));
/* see mk_Int8 comment */
}
HaskellObj
-rts_mkInt64 (HsInt64_ i)
+rts_mkInt64 (HsInt64 i)
{
long long *tmp;
StgClosure *p = (StgClosure *)allocate(CONSTR_sizeW(0,2));
}
HaskellObj
-rts_mkWord (unsigned int i)
+rts_mkWord (HsWord i)
{
StgClosure *p = (StgClosure *)allocate(CONSTR_sizeW(0,1));
p->header.info = Wzh_con_info;
}
HaskellObj
-rts_mkWord8 (unsigned int w)
+rts_mkWord8 (HsWord8 w)
{
/* see rts_mkInt* comments */
StgClosure *p = (StgClosure *)allocate(CONSTR_sizeW(0,1));
}
HaskellObj
-rts_mkWord16 (unsigned int w)
+rts_mkWord16 (HsWord16 w)
{
/* see rts_mkInt* comments */
StgClosure *p = (StgClosure *)allocate(CONSTR_sizeW(0,1));
}
HaskellObj
-rts_mkWord32 (unsigned int w)
+rts_mkWord32 (HsWord32 w)
{
/* see rts_mkInt* comments */
StgClosure *p = (StgClosure *)allocate(CONSTR_sizeW(0,1));
}
HaskellObj
-rts_mkWord64 (HsWord64_ w)
+rts_mkWord64 (HsWord64 w)
{
unsigned long long *tmp;
}
HaskellObj
-rts_mkFloat (float f)
+rts_mkFloat (HsFloat f)
{
StgClosure *p = (StgClosure *)allocate(CONSTR_sizeW(0,1));
p->header.info = Fzh_con_info;
}
HaskellObj
-rts_mkDouble (double d)
+rts_mkDouble (HsDouble d)
{
StgClosure *p = (StgClosure *)allocate(CONSTR_sizeW(0,sizeofW(StgDouble)));
p->header.info = Dzh_con_info;
}
HaskellObj
-rts_mkStablePtr (StgStablePtr s)
+rts_mkStablePtr (HsStablePtr s)
{
StgClosure *p = (StgClosure *)allocate(sizeofW(StgHeader)+1);
p->header.info = StablePtr_con_info;
}
HaskellObj
-rts_mkAddr (void *a)
+rts_mkAddr (HsAddr a)
{
StgClosure *p = (StgClosure *)allocate(sizeofW(StgHeader)+1);
p->header.info = Azh_con_info;
#ifdef COMPILER /* GHC has em, Hugs doesn't */
HaskellObj
-rts_mkBool (StgBool b)
+rts_mkBool (HsBool b)
{
if (b) {
return (StgClosure *)True_closure;
Deconstructing Haskell objects
------------------------------------------------------------------------- */
-unsigned int
+HsChar
rts_getChar (HaskellObj p)
{
if ( p->header.info == Czh_con_info ||
}
}
-int
+HsInt
rts_getInt (HaskellObj p)
{
if ( 1 ||
}
}
-int
+HsInt32
rts_getInt32 (HaskellObj p)
{
if ( 1 ||
}
}
-unsigned int
+HsWord
rts_getWord (HaskellObj p)
{
if ( 1 || /* see above comment */
}
}
-unsigned int
+HsWord32
rts_getWord32 (HaskellObj p)
{
if ( 1 || /* see above comment */
}
}
-float
+HsFloat
rts_getFloat (HaskellObj p)
{
if ( p->header.info == Fzh_con_info ||
}
}
-double
+HsDouble
rts_getDouble (HaskellObj p)
{
if ( p->header.info == Dzh_con_info ||
}
}
-StgStablePtr
+HsStablePtr
rts_getStablePtr (HaskellObj p)
{
if ( p->header.info == StablePtr_con_info ||
}
}
-void *
+HsAddr
rts_getAddr (HaskellObj p)
{
if ( p->header.info == Azh_con_info ||
}
#ifdef COMPILER /* GHC has em, Hugs doesn't */
-int
+HsBool
rts_getBool (HaskellObj p)
{
if (p == True_closure) {