/* ----------------------------------------------------------------------------
- * $Id: RtsAPI.c,v 1.2 1998/12/02 13:28:38 simonm Exp $
+ * $Id: RtsAPI.c,v 1.3 1999/01/27 14:51:21 simonpj Exp $
*
* API for invoking Haskell functions via the RTS
*
rts_mkChar (char c)
{
StgClosure *p = (StgClosure *)allocate(CONSTR_sizeW(0,1));
- p->header.info = &CZh_con_info;
+ p->header.info = &Czh_con_info;
p->payload[0] = (StgClosure *)((StgInt)c);
return p;
}
rts_mkInt (int i)
{
StgClosure *p = (StgClosure *)allocate(CONSTR_sizeW(0,1));
- p->header.info = &IZh_con_info;
+ p->header.info = &Izh_con_info;
p->payload[0] = (StgClosure *)(StgInt)i;
return p;
}
instead of the one for Int8, but the types have identical
representation.
*/
- p->header.info = &IZh_con_info;
+ p->header.info = &Izh_con_info;
/* Make sure we mask out the bits above the lowest 8 */
p->payload[0] = (StgClosure *)(StgInt)((unsigned)i & 0xff);
return p;
instead of the one for Int8, but the types have identical
representation.
*/
- p->header.info = &IZh_con_info;
+ p->header.info = &Izh_con_info;
/* Make sure we mask out the relevant bits */
p->payload[0] = (StgClosure *)(StgInt)((unsigned)i & 0xffff);
return p;
{
StgClosure *p = (StgClosure *)allocate(CONSTR_sizeW(0,1));
/* see mk_Int8 comment */
- p->header.info = &IZh_con_info;
+ p->header.info = &Izh_con_info;
p->payload[0] = (StgClosure *)(StgInt)i;
return p;
}
long long *tmp;
StgClosure *p = (StgClosure *)allocate(CONSTR_sizeW(0,2));
/* see mk_Int8 comment */
- p->header.info = &I64Zh_con_info;
+ p->header.info = &I64zh_con_info;
tmp = (long long*)&(p->payload[0]);
*tmp = (StgInt64)i;
return p;
rts_mkWord (unsigned int i)
{
StgClosure *p = (StgClosure *)allocate(CONSTR_sizeW(0,1));
- p->header.info = &WZh_con_info;
+ p->header.info = &Wzh_con_info;
p->payload[0] = (StgClosure *)(StgWord)i;
return p;
}
{
/* see rts_mkInt* comments */
StgClosure *p = (StgClosure *)allocate(CONSTR_sizeW(0,1));
- p->header.info = &WZh_con_info;
+ p->header.info = &Wzh_con_info;
p->payload[0] = (StgClosure *)(StgWord)(w & 0xff);
return p;
}
{
/* see rts_mkInt* comments */
StgClosure *p = (StgClosure *)allocate(CONSTR_sizeW(0,1));
- p->header.info = &WZh_con_info;
+ p->header.info = &Wzh_con_info;
p->payload[0] = (StgClosure *)(StgWord)(w & 0xffff);
return p;
}
{
/* see rts_mkInt* comments */
StgClosure *p = (StgClosure *)allocate(CONSTR_sizeW(0,1));
- p->header.info = &WZh_con_info;
+ p->header.info = &Wzh_con_info;
p->payload[0] = (StgClosure *)(StgWord)w;
return p;
}
rts_mkWord64 (unsigned long long w)
{
unsigned long long *tmp;
- extern StgInfoTable W64Zh_con_info;
+ extern StgInfoTable W64zh_con_info;
StgClosure *p = (StgClosure *)allocate(CONSTR_sizeW(0,2));
/* see mk_Int8 comment */
- p->header.info = &W64Zh_con_info;
+ p->header.info = &W64zh_con_info;
tmp = (unsigned long long*)&(p->payload[0]);
*tmp = (StgNat64)w;
return p;
rts_mkFloat (float f)
{
StgClosure *p = (StgClosure *)allocate(CONSTR_sizeW(0,1));
- p->header.info = &FZh_con_info;
+ p->header.info = &Fzh_con_info;
ASSIGN_FLT((P_)p->payload, (StgFloat)f);
return p;
}
rts_mkDouble (double d)
{
StgClosure *p = (StgClosure *)allocate(CONSTR_sizeW(0,sizeofW(StgDouble)));
- p->header.info = &DZh_con_info;
+ p->header.info = &Dzh_con_info;
ASSIGN_DBL((P_)p->payload, (StgDouble)d);
return p;
}
rts_mkAddr (void *a)
{
StgClosure *p = (StgClosure *)allocate(sizeofW(StgHeader)+1);
- p->header.info = &AZh_con_info;
+ p->header.info = &Azh_con_info;
p->payload[0] = (StgClosure *)a;
return p;
}
char
rts_getChar (HaskellObj p)
{
- if (p->header.info == &CZh_con_info || p->header.info == &CZh_static_info) {
+ if (p->header.info == &Czh_con_info || p->header.info == &Czh_static_info) {
return (char)(StgWord)(p->payload[0]);
} else {
barf("getChar: not a Char");
int
rts_getInt (HaskellObj p)
{
- if (p->header.info == &IZh_con_info || p->header.info == &IZh_static_info) {
+ if (p->header.info == &Izh_con_info || p->header.info == &Izh_static_info) {
return (int)(p->payload[0]);
} else {
barf("getInt: not an Int");
unsigned int
rts_getWord (HaskellObj p)
{
- if (p->header.info == &WZh_con_info || p->header.info == &WZh_static_info) {
+ if (p->header.info == &Wzh_con_info || p->header.info == &Wzh_static_info) {
return (unsigned int)(p->payload[0]);
} else {
barf("getWord: not a Word");
float
rts_getFloat (HaskellObj p)
{
- if (p->header.info == &FZh_con_info || p->header.info == &FZh_static_info) {
+ if (p->header.info == &Fzh_con_info || p->header.info == &Fzh_static_info) {
return (float)(PK_FLT((P_)p->payload));
} else {
barf("getFloat: not a Float");
double
rts_getDouble (HaskellObj p)
{
- if (p->header.info == &DZh_con_info || p->header.info == &DZh_static_info) {
+ if (p->header.info == &Dzh_con_info || p->header.info == &Dzh_static_info) {
return (double)(PK_DBL((P_)p->payload));
} else {
barf("getDouble: not a Double");
void *
rts_getAddr (HaskellObj p)
{
- if (p->header.info == &AZh_con_info || p->header.info == &AZh_static_info) {
+ if (p->header.info == &Azh_con_info || p->header.info == &Azh_static_info) {
return (void *)(p->payload[0]);
} else {
barf("getAddr: not an Addr");