[project @ 2000-08-07 16:06:38 by rrt]
[ghc-hetmet.git] / ghc / rts / ForeignCall.c
index 182853e..a6a4646 100644 (file)
@@ -1,6 +1,6 @@
 
 /* -----------------------------------------------------------------------------
- * $Id: ForeignCall.c,v 1.13 2000/03/02 10:32:17 sewardj Exp $
+ * $Id: ForeignCall.c,v 1.17 2000/05/26 10:14:34 sewardj Exp $
  *
  * (c) The GHC Team 1994-1999.
  *
@@ -178,7 +178,7 @@ static void universal_call_c_generic
   unsigned int *p = (unsigned int*) args;
 
 #define ARG(n)  (p[n*2])
-#define CMP(str) ((n_args + 1 == strlen(str)) && \
+#define CMP(str) ((n_args + 1 == (int)strlen(str)) && \
                  (!strncmp(str,argstr,n_args + 1)))
 
 #define CALL(retType,callTypes,callVals) \
@@ -205,7 +205,8 @@ static void universal_call_c_generic
       printf("%c",(char)argstr[i]);
     }
     printf("' [%d arg(s)]\n",n_args);
-    assert(0);
+    barf("aborting");
+    ASSERT(0);
   }
 #undef CALL
 #undef CMP
@@ -248,7 +249,7 @@ int ccall ( CFunDescriptor*  d,
       return 1; /* unlikely, but ... */
 
    p = (unsigned int*) &arg_vec[1];
-   for (i = 0; i < d->num_args; i++) {
+   for (i = 0; i < (int)(d->num_args); i++) {
       switch (d->arg_tys[i]) {
 
          case INT_REP:
@@ -385,7 +386,7 @@ int ccall ( CFunDescriptor*  d,
 /* Make it possible for the evaluator to get hold of bytecode
    for a given function by name.  Useful but a hack.  Sigh.
  */
-extern void* getHugs_AsmObject_for ( char* s );
+extern void* /* StgClosure* */ getHugs_BCO_cptr_for ( char* s );
 extern int /*Bool*/ combined;
 
 /* ----------------------------------------------------------------*
@@ -469,7 +470,7 @@ unpackArgsAndCallHaskell_x86_nocallconv_wrk ( StgStablePtr stableptr,
       sstat = rts_evalIO ( node, &nodeOut );
    } else {
       node = rts_apply ( 
-                asmClosureOfObject(getHugs_AsmObject_for("primRunST")), 
+                getHugs_BCO_cptr_for("runST"), 
                 node );
       sstat = rts_eval ( node, &nodeOut );
    }
@@ -686,7 +687,7 @@ StgAddr createAdjThunk ( StgStablePtr stableptr,
       createAdjThunk_x86 ( stableptr, typestr, callconv );
 #else
       0;
-      #warn foreign export not implemented on this architecture
+#warning foreign export not implemented on this architecture
 #endif
 }