cvsuser 02/11/20 09:46:47
Modified: . MANIFEST
config/gen/makefiles root.in
Added: . nci.c
Log:
Start in on generic C function call routines
Revision Changes Path
1.254 +1 -0 parrot/MANIFEST
Index: MANIFEST
===================================================================
RCS file: /cvs/public/parrot/MANIFEST,v
retrieving revision 1.253
retrieving revision 1.254
diff -u -w -r1.253 -r1.254
--- MANIFEST 19 Nov 2002 15:47:23 -0000 1.253
+++ MANIFEST 20 Nov 2002 17:46:46 -0000 1.254
@@ -1571,6 +1571,7 @@
memory.c
method_util.c
misc.c
+nci.c
obscure.ops
ops2c.pl
ops2cgc.pl
1.1 parrot/nci.c
Index: nci.c
===================================================================
/* nci.c
* Copyright: 2001, 2002 Yet Another Society
* CVS Info
* $Id: nci.c,v 1.1 2002/11/20 17:46:46 dan Exp $
* Overview:
* Native Call Interface routines. The code needed to build a
* parrot to C call frame is in here
* Data Structure and Algorithms:
* History:
* Notes:
* References:
*/
#include "parrot/parrot.h"
/* This function serves a single purpose. It takes the function
signature for a C function we want to call and returns a pointer
to a function that can call it. */
void *build_call_func(Parrot_Interp *interpreter, String *signature) {
#if defined(CAN_BUILD_CALL_FRAMES)
/* This would be a good place to put the code that builds the
frames. Undoubtedly painfully platform-dependent */
abort("Oh, no you can't!");
#else
/* And in here is the platform-independent way. Which is to say
"here there be hacks" */
return NULL;
#endif
}
#if !defined(CAN_BUILD_CALL_FRAMES)
/* Return void, take nothing */
static void pcf_v_v(Parrot_Interp *interpreter, void (*pointer)()) {
(void)(*pointer)();
return;
}
#endif
1.58 +4 -1 parrot/config/gen/makefiles/root.in
Index: root.in
===================================================================
RCS file: /cvs/public/parrot/config/gen/makefiles/root.in,v
retrieving revision 1.57
retrieving revision 1.58
diff -u -w -r1.57 -r1.58
--- root.in 20 Nov 2002 17:14:40 -0000 1.57
+++ root.in 20 Nov 2002 17:46:47 -0000 1.58
@@ -105,7 +105,8 @@
embed$(O) warnings$(O) ${cg_o} \
packout$(O) byteorder$(O) debug$(O) smallobject$(O) \
headers$(O) dod$(O) method_util$(O) exit$(O) \
- misc$(O) spf_render$(O) spf_vtable$(O) datatypes$(O) fingerprint$(O)
+ misc$(O) spf_render$(O) spf_vtable$(O) datatypes$(O) fingerprint$(O) \
+ nci$(O)
O_FILES = $(INTERP_O_FILES) $(IO_O_FILES) $(CLASS_O_FILES) \
$(ENCODING_O_FILES) $(CHARTYPE_O_FILES)
@@ -421,6 +422,8 @@
dataypes$(O) : $(GENERAL_H_FILES) dataypes.c
exit$(O) : $(GENERAL_H_FILES) exit.c
+
+nci$(O) : $(GENERAL_H_FILES) exit.c
#core_ops depends upon config.h so that it gets updated along with updates to
config.h's version numbers
core_ops.c $(INC)/oplib/core_ops.h : $(OPS_FILES) ops2c.pl lib/Parrot/OpsFile.pm
lib/Parrot/Op.pm $(INC)/config.h