BSD 4_3_Tahoe development
authorCSRG <csrg@ucbvax.Berkeley.EDU>
Sun, 24 Mar 1985 04:03:00 +0000 (20:03 -0800)
committerCSRG <csrg@ucbvax.Berkeley.EDU>
Sun, 24 Mar 1985 04:03:00 +0000 (20:03 -0800)
Work on file usr/src/ucb/lisp/franz/data.c
Work on file usr/tmp/housel/franz/data.c

Synthesized-from: CSRG/cd2/4.3tahoe

usr/src/ucb/lisp/franz/data.c [new file with mode: 0644]
usr/tmp/housel/franz/data.c [new file with mode: 0644]

diff --git a/usr/src/ucb/lisp/franz/data.c b/usr/src/ucb/lisp/franz/data.c
new file mode 100644 (file)
index 0000000..c904235
--- /dev/null
@@ -0,0 +1,293 @@
+#ifndef lint
+static char *rcsid =
+   "$Header: data.c,v 1.8 85/03/24 11:02:24 sklower Exp $";
+#endif
+
+/*                                     -[Sun Jun 19 14:41:00 1983 by jkf]-
+ *     data.c                          $Locker:  $
+ * static storage declarations
+ *
+ * (c) copyright 1982, Regents of the University of California
+ */
+
+
+
+#include       "global.h"
+#include       "gtabs.h"
+#include       "structs.h"
+#include       "frame.h"
+#include       <stdio.h>
+
+/*char firstalloc[NBPG] = { 'x' };     /* first thing allocated in file */
+lispval lispsys[SIGNIF];       /* lisp data used by system */
+
+lispval gftab[GFTABLEN];       /* global function table for interpreter */
+
+lispval gctab[GCTABLEN] =      /* global constant table for interpreter */
+       {nil,0,SMALL(-1),SMALL(0),SMALL(1),SMALL(2),SMALL(3),SMALL(4)};
+
+
+/* Port definitions *****************************************************/
+FILE   *piport,                /* standard input port          */
+       *poport,                /* standard output port         */
+       *errport,               /* port for error messages      */
+       *rdrport,               /* temporary port for readr     */
+       *proport;               /* port for protocal            */
+int    lineleng =      80;             /* line length desired          */
+int    rlevel;                 /* used to indicate depth of recursion
+                                  in reader.  No longer really necessary */
+char   keybin =        FALSE;          /* logical flag: using keyboard */
+char   protflag =      FALSE;          /* logical flag: want protocall */
+char   rbktf;                          /* logical flag: ] mode         */
+
+#ifdef RTPORTS
+lispval ioname[128];           /* strings of names of files currently open     */
+#else 
+lispval ioname[_NFILE];                /* strings of names of files currently open     */
+#endif
+
+/* name stack ***********************************************************/
+struct argent *orgnp;          /* used by top level to reset to start  */
+struct argent          *namptr,                /* temporary pointer    */
+#ifndef NPINREG
+                       *lbot,                  /* beginning of frame   */
+                       *np,                    /* first free entry     */
+#endif
+                       *nplim;                 /* don't have this = np */
+struct nament          *bnp,                   /* top of bind stack    */
+                       *orgbnp,                /* absolute bottom of ""*/
+                       *bnplim;                /* absolute top of ""   */
+
+
+
+/* hashing things *******************************************************/
+int    hash;                                   /* set by ratom         */
+int    atmlen;                 /* length of atom including final null  */
+
+
+/* big string buffer for whomever needs it ******************************/
+static char    i_strbuf[600];
+char   *strbuf         = i_strbuf;
+char   *endstrb        = i_strbuf + 599;
+
+/* in the case we can't use the C stack for extending automatics */
+#ifdef SPISFP
+long xstack[16384];
+long *xsp;
+long *exsp = xstack + ((sizeof xstack)/(sizeof (long)));
+#endif
+
+/* strings needed by the two hand crafted atoms, nil and eof */
+char nilpname[] = "nil";
+char eofpname[] = "eof";
+
+/* set by sstatus commands */
+int uctolc = 0;                /* when set, uc chars in atoms go to lc */
+                       /* default mode for dumplisp 
+                          (note this is decimal not octal) */
+#if os_unisoft || os_unix_ts
+int dmpmode = 410;
+#else
+int dmpmode = 413;
+#endif
+
+/* break and error declarations *****************************************/
+int    depth = 0;              /* depth of nested breaks               */
+lispval        contval;                /* the value being returned up          */
+int    retval;                 /* used by each error/prog call         */
+lispval lispretval;            /* used by non-local goto's             */
+int    rsetsw;                 /* when set, trace frames built         */
+int    bcdtrsw;                /* when set with rsetsw, trace bcd too  */
+int    evalhcallsw;            /* when set will not evalhook next eval */
+int    funhcallsw;             /* when set will not funcallhook next eval */
+
+
+/* exception handling stuff *********************************************/
+int exception;                 /* true if an exception is pending */
+int sigintcnt;                 /* number of SIGINT's pending      */
+
+/* current state of the hole (for fasling into) *************************/
+#ifndef HOLE
+#define HOLE 0
+#endif
+extern char holbeg[];
+char *curhbeg = holbeg;                        /* next location to fasl into */
+int usehole = HOLE;                    /* if TRUE, fasl tries to use hole */
+int holesize = HOLE;                   /* This avoids an ifdef in dumplisp */
+
+/* other stuff **********************************************************/
+lispval        ftemp,vtemp,argptr,ttemp;       /* temporaries: use briefly     */
+int itemp;
+lispval sigacts[16];                   /* for catching interrupts      */
+int sigstruck,sigdelay;                        /* for catching interrupts      */
+lispval stattab[16];                   /* miscelleneous options        */
+lispval Vprintsym;                     /* value is the symbol 'print'  */
+
+/*  interpreter globals    */
+
+int lctrace;
+int fvirgin = 1;               /* set to 1 initially                   */
+int gctime;
+struct frame *errp;            /* stack of error frames                */
+
+
+/* global pointers to the transfer tables */
+
+
+struct trtab *trhead=          /* first in list of transfer tables        */
+      (struct trtab *) 0;
+struct trent *trcur;           /* next entry to allocate                  */
+int trleft = 0;                        /* number of entries left in current table */
+
+/* globals from sysat.c  */
+
+int *beginsweep;               /* place for sweeper to begin           */
+int initflag = TRUE;           /* inhibit gcing initially              */
+int tgcthresh = 15;
+int page_limit = (5 * TTSIZE) / 6;
+int ttsize = TTSIZE;
+
+
+/* global used in io.c */
+
+lispval lastrtab;
+
+/* globals from [VT]alloc.c  */
+
+
+char purepage[TTSIZE];
+int fakettsize = TTSIZE - 8;
+int gcstrings;                         /*  Do we mark and sweep strings? */
+int  *bind_lists = (int *) CNIL;       /*  lisp data for compiled code */
+
+
+struct str_x str_current[2];           /*  next free string spaces */
+
+struct types
+       atom_str =
+       {
+               (char *)CNIL,   0,      ATOMSPP,        ATOM,   5,
+               &atom_items,    &atom_pages,    &atom_name,
+               (struct heads *) CNIL, (char *)CNIL
+       },
+       strng_str =
+       {
+               (char *) CNIL,  0,      STRSPP,         STRNG,  128,
+               &str_items,     &str_pages,     &str_name,
+               (struct heads *) CNIL, (char *)CNIL
+       },
+       int_str =
+       {
+               (char *) CNIL,  0,      INTSPP,         INT,    1,
+               &int_items,     &int_pages,     &int_name,
+               (struct heads *) CNIL, (char *)CNIL
+       },
+       dtpr_str =
+       {
+               (char *) CNIL,  0,      DTPRSPP,        DTPR,   2,
+               &dtpr_items,    &dtpr_pages,    &dtpr_name,
+               (struct heads *) CNIL, (char *)CNIL
+       },
+       doub_str =
+       {
+               (char *) CNIL,  0,      DOUBSPP,        DOUB,   2,
+               &doub_items,    &doub_pages,    &doub_name,
+               (struct heads *) CNIL, (char *)CNIL
+       },
+       array_str =
+       {
+               (char *) CNIL,  0,      ARRAYSPP,       ARRAY,  5,
+               &array_items,   &array_pages,   &array_name,
+               (struct heads *) CNIL, (char *)CNIL
+       },
+       other_str =
+       {
+               (char *) CNIL,  0,      STRSPP,         OTHER,  128,
+               &other_items,   &other_pages,   &other_name,
+               (struct heads *) CNIL, (char *)CNIL
+       },
+
+       sdot_str =
+       {
+               (char *) CNIL,  0,      SDOTSPP,        SDOT,   2,
+               &sdot_items,    &sdot_pages,    &sdot_name,
+               (struct heads *) CNIL, (char *)CNIL
+       },
+       val_str =
+       {
+               (char *) CNIL,  0,      VALSPP,         VALUE,  1,
+               &val_items,     &val_pages,     &val_name,
+               (struct heads *) CNIL, (char *)CNIL
+       },
+funct_str =
+       {
+               (char *) CNIL,  0,      BCDSPP,         BCD,    2,
+               &funct_items,   &funct_pages,   &funct_name,
+               (struct heads *) CNIL, (char *)CNIL
+       },
+vect_str =
+       {
+               
+               (char *) CNIL,  0,      VECTORSPP,      VECTOR, 1,
+               &vect_items,    &vect_pages,    &vect_name,
+               (struct heads *) CNIL, (char *)CNIL
+       },
+vecti_str =
+       {
+               
+               (char *) CNIL,  0,      VECTORSPP,      VECTORI, 1,
+               &vect_items,    &vecti_pages,   &vecti_name,
+               (struct heads *) CNIL, (char *)CNIL
+       },
+
+hunk_str[7] =
+       {
+               {
+                       (char *) CNIL,  0,      HUNK2SPP,       HUNK2,  2,
+                       &hunk_items[0], &hunk_pages[0], &hunk_name[0],
+                       (struct heads *) CNIL, (char *)CNIL
+               },
+               {
+                       (char *) CNIL,  0,      HUNK4SPP,       HUNK4,  4,
+                       &hunk_items[1], &hunk_pages[1], &hunk_name[1],
+                       (struct heads *) CNIL, (char *)CNIL
+               },
+               {
+                       (char *) CNIL,  0,      HUNK8SPP,       HUNK8,  8,
+                       &hunk_items[2], &hunk_pages[2], &hunk_name[2],
+                       (struct heads *) CNIL, (char *)CNIL
+               },
+               {
+                       (char *) CNIL,  0,      HUNK16SPP,      HUNK16, 16,
+                       &hunk_items[3], &hunk_pages[3], &hunk_name[3],
+                       (struct heads *) CNIL, (char *)CNIL
+               },
+               {
+                       (char *) CNIL,  0,      HUNK32SPP,      HUNK32, 32,
+                       &hunk_items[4], &hunk_pages[4], &hunk_name[4],
+                       (struct heads *) CNIL, (char *)CNIL
+               },
+               {
+                       (char *) CNIL,  0,      HUNK64SPP,      HUNK64, 64,
+                       &hunk_items[5], &hunk_pages[5], &hunk_name[5],
+                       (struct heads *) CNIL, (char *)CNIL
+               },
+               {
+                       (char *) CNIL,  0,      HUNK128SPP,     HUNK128, 128,
+                       &hunk_items[6], &hunk_pages[6], &hunk_name[6],
+                       (struct heads *) CNIL, (char *)CNIL
+               }
+       };
+extern struct readtable { unsigned char        ctable[132]; } initread;
+unsigned char *ctable = initread.ctable;
+int gensymcounter = 0;
+
+int hashtop = HASHTOP;
+int xcycle = 0;                /* used by xsbrk   */
+struct atom *hasht[HASHTOP];
+lispval datalim;       /* pointer to next location to allocate */
+
+char typetable[TTSIZE+1] = {UNBO,ATOM,PORT,INT,INT,INT,INT,INT,INT,INT,INT,INT,INT,INT,INT,INT,INT,INT,INT};
+
+/* this must be the last thing allocated in this file  */
+char lsbrkpnt,zfreespace;
diff --git a/usr/tmp/housel/franz/data.c b/usr/tmp/housel/franz/data.c
new file mode 100644 (file)
index 0000000..c904235
--- /dev/null
@@ -0,0 +1,293 @@
+#ifndef lint
+static char *rcsid =
+   "$Header: data.c,v 1.8 85/03/24 11:02:24 sklower Exp $";
+#endif
+
+/*                                     -[Sun Jun 19 14:41:00 1983 by jkf]-
+ *     data.c                          $Locker:  $
+ * static storage declarations
+ *
+ * (c) copyright 1982, Regents of the University of California
+ */
+
+
+
+#include       "global.h"
+#include       "gtabs.h"
+#include       "structs.h"
+#include       "frame.h"
+#include       <stdio.h>
+
+/*char firstalloc[NBPG] = { 'x' };     /* first thing allocated in file */
+lispval lispsys[SIGNIF];       /* lisp data used by system */
+
+lispval gftab[GFTABLEN];       /* global function table for interpreter */
+
+lispval gctab[GCTABLEN] =      /* global constant table for interpreter */
+       {nil,0,SMALL(-1),SMALL(0),SMALL(1),SMALL(2),SMALL(3),SMALL(4)};
+
+
+/* Port definitions *****************************************************/
+FILE   *piport,                /* standard input port          */
+       *poport,                /* standard output port         */
+       *errport,               /* port for error messages      */
+       *rdrport,               /* temporary port for readr     */
+       *proport;               /* port for protocal            */
+int    lineleng =      80;             /* line length desired          */
+int    rlevel;                 /* used to indicate depth of recursion
+                                  in reader.  No longer really necessary */
+char   keybin =        FALSE;          /* logical flag: using keyboard */
+char   protflag =      FALSE;          /* logical flag: want protocall */
+char   rbktf;                          /* logical flag: ] mode         */
+
+#ifdef RTPORTS
+lispval ioname[128];           /* strings of names of files currently open     */
+#else 
+lispval ioname[_NFILE];                /* strings of names of files currently open     */
+#endif
+
+/* name stack ***********************************************************/
+struct argent *orgnp;          /* used by top level to reset to start  */
+struct argent          *namptr,                /* temporary pointer    */
+#ifndef NPINREG
+                       *lbot,                  /* beginning of frame   */
+                       *np,                    /* first free entry     */
+#endif
+                       *nplim;                 /* don't have this = np */
+struct nament          *bnp,                   /* top of bind stack    */
+                       *orgbnp,                /* absolute bottom of ""*/
+                       *bnplim;                /* absolute top of ""   */
+
+
+
+/* hashing things *******************************************************/
+int    hash;                                   /* set by ratom         */
+int    atmlen;                 /* length of atom including final null  */
+
+
+/* big string buffer for whomever needs it ******************************/
+static char    i_strbuf[600];
+char   *strbuf         = i_strbuf;
+char   *endstrb        = i_strbuf + 599;
+
+/* in the case we can't use the C stack for extending automatics */
+#ifdef SPISFP
+long xstack[16384];
+long *xsp;
+long *exsp = xstack + ((sizeof xstack)/(sizeof (long)));
+#endif
+
+/* strings needed by the two hand crafted atoms, nil and eof */
+char nilpname[] = "nil";
+char eofpname[] = "eof";
+
+/* set by sstatus commands */
+int uctolc = 0;                /* when set, uc chars in atoms go to lc */
+                       /* default mode for dumplisp 
+                          (note this is decimal not octal) */
+#if os_unisoft || os_unix_ts
+int dmpmode = 410;
+#else
+int dmpmode = 413;
+#endif
+
+/* break and error declarations *****************************************/
+int    depth = 0;              /* depth of nested breaks               */
+lispval        contval;                /* the value being returned up          */
+int    retval;                 /* used by each error/prog call         */
+lispval lispretval;            /* used by non-local goto's             */
+int    rsetsw;                 /* when set, trace frames built         */
+int    bcdtrsw;                /* when set with rsetsw, trace bcd too  */
+int    evalhcallsw;            /* when set will not evalhook next eval */
+int    funhcallsw;             /* when set will not funcallhook next eval */
+
+
+/* exception handling stuff *********************************************/
+int exception;                 /* true if an exception is pending */
+int sigintcnt;                 /* number of SIGINT's pending      */
+
+/* current state of the hole (for fasling into) *************************/
+#ifndef HOLE
+#define HOLE 0
+#endif
+extern char holbeg[];
+char *curhbeg = holbeg;                        /* next location to fasl into */
+int usehole = HOLE;                    /* if TRUE, fasl tries to use hole */
+int holesize = HOLE;                   /* This avoids an ifdef in dumplisp */
+
+/* other stuff **********************************************************/
+lispval        ftemp,vtemp,argptr,ttemp;       /* temporaries: use briefly     */
+int itemp;
+lispval sigacts[16];                   /* for catching interrupts      */
+int sigstruck,sigdelay;                        /* for catching interrupts      */
+lispval stattab[16];                   /* miscelleneous options        */
+lispval Vprintsym;                     /* value is the symbol 'print'  */
+
+/*  interpreter globals    */
+
+int lctrace;
+int fvirgin = 1;               /* set to 1 initially                   */
+int gctime;
+struct frame *errp;            /* stack of error frames                */
+
+
+/* global pointers to the transfer tables */
+
+
+struct trtab *trhead=          /* first in list of transfer tables        */
+      (struct trtab *) 0;
+struct trent *trcur;           /* next entry to allocate                  */
+int trleft = 0;                        /* number of entries left in current table */
+
+/* globals from sysat.c  */
+
+int *beginsweep;               /* place for sweeper to begin           */
+int initflag = TRUE;           /* inhibit gcing initially              */
+int tgcthresh = 15;
+int page_limit = (5 * TTSIZE) / 6;
+int ttsize = TTSIZE;
+
+
+/* global used in io.c */
+
+lispval lastrtab;
+
+/* globals from [VT]alloc.c  */
+
+
+char purepage[TTSIZE];
+int fakettsize = TTSIZE - 8;
+int gcstrings;                         /*  Do we mark and sweep strings? */
+int  *bind_lists = (int *) CNIL;       /*  lisp data for compiled code */
+
+
+struct str_x str_current[2];           /*  next free string spaces */
+
+struct types
+       atom_str =
+       {
+               (char *)CNIL,   0,      ATOMSPP,        ATOM,   5,
+               &atom_items,    &atom_pages,    &atom_name,
+               (struct heads *) CNIL, (char *)CNIL
+       },
+       strng_str =
+       {
+               (char *) CNIL,  0,      STRSPP,         STRNG,  128,
+               &str_items,     &str_pages,     &str_name,
+               (struct heads *) CNIL, (char *)CNIL
+       },
+       int_str =
+       {
+               (char *) CNIL,  0,      INTSPP,         INT,    1,
+               &int_items,     &int_pages,     &int_name,
+               (struct heads *) CNIL, (char *)CNIL
+       },
+       dtpr_str =
+       {
+               (char *) CNIL,  0,      DTPRSPP,        DTPR,   2,
+               &dtpr_items,    &dtpr_pages,    &dtpr_name,
+               (struct heads *) CNIL, (char *)CNIL
+       },
+       doub_str =
+       {
+               (char *) CNIL,  0,      DOUBSPP,        DOUB,   2,
+               &doub_items,    &doub_pages,    &doub_name,
+               (struct heads *) CNIL, (char *)CNIL
+       },
+       array_str =
+       {
+               (char *) CNIL,  0,      ARRAYSPP,       ARRAY,  5,
+               &array_items,   &array_pages,   &array_name,
+               (struct heads *) CNIL, (char *)CNIL
+       },
+       other_str =
+       {
+               (char *) CNIL,  0,      STRSPP,         OTHER,  128,
+               &other_items,   &other_pages,   &other_name,
+               (struct heads *) CNIL, (char *)CNIL
+       },
+
+       sdot_str =
+       {
+               (char *) CNIL,  0,      SDOTSPP,        SDOT,   2,
+               &sdot_items,    &sdot_pages,    &sdot_name,
+               (struct heads *) CNIL, (char *)CNIL
+       },
+       val_str =
+       {
+               (char *) CNIL,  0,      VALSPP,         VALUE,  1,
+               &val_items,     &val_pages,     &val_name,
+               (struct heads *) CNIL, (char *)CNIL
+       },
+funct_str =
+       {
+               (char *) CNIL,  0,      BCDSPP,         BCD,    2,
+               &funct_items,   &funct_pages,   &funct_name,
+               (struct heads *) CNIL, (char *)CNIL
+       },
+vect_str =
+       {
+               
+               (char *) CNIL,  0,      VECTORSPP,      VECTOR, 1,
+               &vect_items,    &vect_pages,    &vect_name,
+               (struct heads *) CNIL, (char *)CNIL
+       },
+vecti_str =
+       {
+               
+               (char *) CNIL,  0,      VECTORSPP,      VECTORI, 1,
+               &vect_items,    &vecti_pages,   &vecti_name,
+               (struct heads *) CNIL, (char *)CNIL
+       },
+
+hunk_str[7] =
+       {
+               {
+                       (char *) CNIL,  0,      HUNK2SPP,       HUNK2,  2,
+                       &hunk_items[0], &hunk_pages[0], &hunk_name[0],
+                       (struct heads *) CNIL, (char *)CNIL
+               },
+               {
+                       (char *) CNIL,  0,      HUNK4SPP,       HUNK4,  4,
+                       &hunk_items[1], &hunk_pages[1], &hunk_name[1],
+                       (struct heads *) CNIL, (char *)CNIL
+               },
+               {
+                       (char *) CNIL,  0,      HUNK8SPP,       HUNK8,  8,
+                       &hunk_items[2], &hunk_pages[2], &hunk_name[2],
+                       (struct heads *) CNIL, (char *)CNIL
+               },
+               {
+                       (char *) CNIL,  0,      HUNK16SPP,      HUNK16, 16,
+                       &hunk_items[3], &hunk_pages[3], &hunk_name[3],
+                       (struct heads *) CNIL, (char *)CNIL
+               },
+               {
+                       (char *) CNIL,  0,      HUNK32SPP,      HUNK32, 32,
+                       &hunk_items[4], &hunk_pages[4], &hunk_name[4],
+                       (struct heads *) CNIL, (char *)CNIL
+               },
+               {
+                       (char *) CNIL,  0,      HUNK64SPP,      HUNK64, 64,
+                       &hunk_items[5], &hunk_pages[5], &hunk_name[5],
+                       (struct heads *) CNIL, (char *)CNIL
+               },
+               {
+                       (char *) CNIL,  0,      HUNK128SPP,     HUNK128, 128,
+                       &hunk_items[6], &hunk_pages[6], &hunk_name[6],
+                       (struct heads *) CNIL, (char *)CNIL
+               }
+       };
+extern struct readtable { unsigned char        ctable[132]; } initread;
+unsigned char *ctable = initread.ctable;
+int gensymcounter = 0;
+
+int hashtop = HASHTOP;
+int xcycle = 0;                /* used by xsbrk   */
+struct atom *hasht[HASHTOP];
+lispval datalim;       /* pointer to next location to allocate */
+
+char typetable[TTSIZE+1] = {UNBO,ATOM,PORT,INT,INT,INT,INT,INT,INT,INT,INT,INT,INT,INT,INT,INT,INT,INT,INT};
+
+/* this must be the last thing allocated in this file  */
+char lsbrkpnt,zfreespace;