Diff for /gforth/engine/forth.h between versions 1.124 and 1.133

version 1.124, 2012/07/19 23:32:25 version 1.133, 2012/12/31 15:25:19
Line 1 Line 1
 /* common header file  /* common header file
   
   Copyright (C) 1995,1996,1997,1998,2000,2003,2004,2005,2006,2007,2008,2009,2010,2011 Free Software Foundation, Inc.    Copyright (C) 1995,1996,1997,1998,2000,2003,2004,2005,2006,2007,2008,2009,2010,2011,2012 Free Software Foundation, Inc.
   
   This file is part of Gforth.    This file is part of Gforth.
   
Line 303  typedef Label *Xt; Line 303  typedef Label *Xt;
 #define rpTOS (rp[0])  #define rpTOS (rp[0])
   
 typedef struct {  typedef struct {
     Cell next_task;
     Cell prev_task;
     Cell save_task;
     Cell* sp0;
     Cell* rp0;
     Float* fp0;
     Address lp0;
     Xt *throw_entry;
   } user_area;
   
   typedef struct {
   Address base;         /* base address of image (0 if relocatable) */    Address base;         /* base address of image (0 if relocatable) */
   UCell checksum;       /* checksum of ca's to protect against some    UCell checksum;       /* checksum of ca's to protect against some
                            incompatible binary/executable combinations                             incompatible binary/executable combinations
Line 315  typedef struct { Line 326  typedef struct {
   UCell locals_stack_size;    UCell locals_stack_size;
   Xt *boot_entry;       /* initial ip for booting (in BOOT) */    Xt *boot_entry;       /* initial ip for booting (in BOOT) */
   Xt *throw_entry;      /* ip after signal (in THROW) */    Xt *throw_entry;      /* ip after signal (in THROW) */
   Cell unused1;         /* possibly tib stack size */    Xt *quit_entry;
     Xt *execute_entry;
     Xt *find_entry;
   Label *xt_base;         /* base of DOUBLE_INDIRECT xts[], for comp-i.fs */    Label *xt_base;         /* base of DOUBLE_INDIRECT xts[], for comp-i.fs */
   Address data_stack_base; /* this and the following fields are initialized by the loader */  
   Address fp_stack_base;  
   Address return_stack_base;  
   Address locals_stack_base;  
 } ImageHeader;  } ImageHeader;
 /* the image-header is created in main.fs */  /* the image-header is created in main.fs */
   
Line 382  extern PER_THREAD Cell *rp; Line 391  extern PER_THREAD Cell *rp;
 #define sr_call  #define sr_call
 #endif /* !defined(GFORTH_DEBUGGING) */  #endif /* !defined(GFORTH_DEBUGGING) */
   
 Label *gforth_engine(Xt *ip, Cell *sp, Cell *rp0, Float *fp, Address lp sr_proto);  Label *gforth_engine(Xt *ip sr_proto);
 Label *gforth_engine2(Xt *ip, Cell *sp, Cell *rp0, Float *fp, Address lp sr_proto);  Label *gforth_engine2(Xt *ip sr_proto);
 Label *gforth_engine3(Xt *ip, Cell *sp, Cell *rp0, Float *fp, Address lp sr_proto);  Label *gforth_engine3(Xt *ip sr_proto);
   
   
 int gforth_main(int argc, char **argv, char **env);  int gforth_main(int argc, char **argv, char **env);
   void gforth_args(int argc, char ** argv, char ** path, char ** imagename);
   Address gforth_loader(char* imagename, char* path);
   user_area* gforth_stacks(Cell dsize, Cell rsize, Cell fsize, Cell lsize);
   void gforth_free_stacks(user_area* t);
   void gforth_free();
   Cell gforth_go(Xt* ip0);
   int gforth_boot(int argc, char** argv, char* path);
   int gforth_start(int argc, char ** argv);
   int gforth_quit();
   Xt gforth_find(Char * name);
   int gforth_execute(Xt xt);
   void gforth_cleanup();
   void gforth_printmetrics();
   #if defined(DOUBLY_INDIRECT)
   int gforth_make_image(int debugflag);
   #endif
   
 /* for ABI-CODE and ;ABI-CODE */  /* for ABI-CODE and ;ABI-CODE */
 typedef Cell *abifunc(Cell *sp, Float **fpp);  typedef Cell *abifunc(Cell *sp, Float **fpp);
Line 471  extern PER_THREAD Cell *gforth_SP; Line 497  extern PER_THREAD Cell *gforth_SP;
 extern PER_THREAD Cell *gforth_RP;  extern PER_THREAD Cell *gforth_RP;
 extern PER_THREAD Address gforth_LP;  extern PER_THREAD Address gforth_LP;
 extern PER_THREAD Float *gforth_FP;  extern PER_THREAD Float *gforth_FP;
 extern PER_THREAD Address gforth_UP;  extern PER_THREAD user_area* gforth_UP;
   
 extern void * gforth_pointers(Cell n);  extern void * gforth_pointers(Cell n);
   

Removed from v.1.124  
changed lines
  Added in v.1.133


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>