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
  
  
  


Reply via email to