1: #ifndef lint
   2: static char *rcsid =
   3:    "$Header: data.c,v 1.8 85/03/24 11:02:24 sklower Exp $";
   4: #endif
   5: 
   6: /*					-[Sun Jun 19 14:41:00 1983 by jkf]-
   7:  * 	data.c				$Locker:  $
   8:  * static storage declarations
   9:  *
  10:  * (c) copyright 1982, Regents of the University of California
  11:  */
  12: 
  13: 
  14: 
  15: #include    "global.h"
  16: #include    "gtabs.h"
  17: #include    "structs.h"
  18: #include    "frame.h"
  19: #include    <stdio.h>
  20: 
  21: /*char firstalloc[NBPG] = { 'x' };	/* first thing allocated in file */
  22: lispval lispsys[SIGNIF];    /* lisp data used by system */
  23: 
  24: lispval gftab[GFTABLEN];    /* global function table for interpreter */
  25: 
  26: lispval gctab[GCTABLEN] =   /* global constant table for interpreter */
  27:     {nil,0,SMALL(-1),SMALL(0),SMALL(1),SMALL(2),SMALL(3),SMALL(4)};
  28: 
  29: 
  30: /* Port definitions *****************************************************/
  31: FILE    *piport,        /* standard input port		*/
  32:     *poport,        /* standard output port		*/
  33:     *errport,       /* port for error messages	*/
  34:     *rdrport,       /* temporary port for readr	*/
  35:     *proport;       /* port for protocal		*/
  36: int lineleng =  80;     /* line length desired		*/
  37: int rlevel;         /* used to indicate depth of recursion
  38: 				   in reader.  No longer really necessary */
  39: char    keybin =    FALSE;      /* logical flag: using keyboard	*/
  40: char    protflag =  FALSE;      /* logical flag: want protocall */
  41: char    rbktf;              /* logical flag: ] mode		*/
  42: 
  43: #ifdef RTPORTS
  44: lispval ioname[128];        /* strings of names of files currently open	*/
  45: #else
  46: lispval ioname[_NFILE];     /* strings of names of files currently open	*/
  47: #endif
  48: 
  49: /* name stack ***********************************************************/
  50: struct argent *orgnp;       /* used by top level to reset to start  */
  51: struct argent       *namptr,        /* temporary pointer	*/
  52: #ifndef NPINREG
  53:             *lbot,          /* beginning of frame	*/
  54:             *np,            /* first free entry   	*/
  55: #endif
  56:             *nplim;         /* don't have this = np	*/
  57: struct nament       *bnp,           /* top of bind stack    */
  58:             *orgbnp,        /* absolute bottom of ""*/
  59:             *bnplim;        /* absolute top of ""   */
  60: 
  61: 
  62: 
  63: /* hashing things *******************************************************/
  64: int hash;                   /* set by ratom		*/
  65: int atmlen;         /* length of atom including final null	*/
  66: 
  67: 
  68: /* big string buffer for whomever needs it ******************************/
  69: static char i_strbuf[600];
  70: char    *strbuf     = i_strbuf;
  71: char    *endstrb    = i_strbuf + 599;
  72: 
  73: /* in the case we can't use the C stack for extending automatics */
  74: #ifdef SPISFP
  75: long xstack[16384];
  76: long *xsp;
  77: long *exsp = xstack + ((sizeof xstack)/(sizeof (long)));
  78: #endif
  79: 
  80: /* strings needed by the two hand crafted atoms, nil and eof */
  81: char nilpname[] = "nil";
  82: char eofpname[] = "eof";
  83: 
  84: /* set by sstatus commands */
  85: int uctolc = 0;     /* when set, uc chars in atoms go to lc */
  86:             /* default mode for dumplisp
  87: 			   (note this is decimal not octal) */
  88: #if os_unisoft || os_unix_ts
  89: int dmpmode = 410;
  90: #else
  91: int dmpmode = 413;
  92: #endif
  93: 
  94: /* break and error declarations *****************************************/
  95: int depth = 0;      /* depth of nested breaks		*/
  96: lispval contval;        /* the value being returned up		*/
  97: int retval;         /* used by each error/prog call		*/
  98: lispval lispretval;     /* used by non-local goto's		*/
  99: int rsetsw;         /* when set, trace frames built		*/
 100: int bcdtrsw;        /* when set with rsetsw, trace bcd too	*/
 101: int     evalhcallsw;        /* when set will not evalhook next eval */
 102: int     funhcallsw;     /* when set will not funcallhook next eval */
 103: 
 104: 
 105: /* exception handling stuff *********************************************/
 106: int exception;          /* true if an exception is pending */
 107: int sigintcnt;          /* number of SIGINT's pending	   */
 108: 
 109: /* current state of the hole (for fasling into) *************************/
 110: #ifndef HOLE
 111: #define HOLE 0
 112: #endif
 113: extern char holbeg[];
 114: char *curhbeg = holbeg;         /* next location to fasl into */
 115: int usehole = HOLE;         /* if TRUE, fasl tries to use hole */
 116: int holesize = HOLE;            /* This avoids an ifdef in dumplisp */
 117: 
 118: /* other stuff **********************************************************/
 119: lispval ftemp,vtemp,argptr,ttemp;   /* temporaries: use briefly	*/
 120: int itemp;
 121: lispval sigacts[16];            /* for catching interrupts	*/
 122: int sigstruck,sigdelay;         /* for catching interrupts	*/
 123: lispval stattab[16];            /* miscelleneous options	*/
 124: lispval Vprintsym;          /* value is the symbol 'print'  */
 125: 
 126: /*  interpreter globals    */
 127: 
 128: int lctrace;
 129: int fvirgin = 1;        /* set to 1 initially 			*/
 130: int gctime;
 131: struct frame *errp;     /* stack of error frames 		*/
 132: 
 133: 
 134: /* global pointers to the transfer tables */
 135: 
 136: 
 137: struct trtab *trhead=       /* first in list of transfer tables 	   */
 138:       (struct trtab *) 0;
 139: struct trent *trcur;        /* next entry to allocate	    	   */
 140: int trleft = 0;         /* number of entries left in current table */
 141: 
 142: /* globals from sysat.c  */
 143: 
 144: int *beginsweep;        /* place for sweeper to begin 		*/
 145: int initflag = TRUE;        /* inhibit gcing initially		*/
 146: int tgcthresh = 15;
 147: int page_limit = (5 * TTSIZE) / 6;
 148: int ttsize = TTSIZE;
 149: 
 150: 
 151: /* global used in io.c */
 152: 
 153: lispval lastrtab;
 154: 
 155: /* globals from [VT]alloc.c  */
 156: 
 157: 
 158: char purepage[TTSIZE];
 159: int fakettsize = TTSIZE - 8;
 160: int gcstrings;              /*  Do we mark and sweep strings? */
 161: int  *bind_lists = (int *) CNIL;    /*  lisp data for compiled code */
 162: 
 163: 
 164: struct str_x str_current[2];        /*  next free string spaces */
 165: 
 166: struct types
 167:     atom_str =
 168:     {
 169:         (char *)CNIL,   0,  ATOMSPP,    ATOM,   5,
 170:         &atom_items,    &atom_pages,    &atom_name,
 171:         (struct heads *) CNIL, (char *)CNIL
 172:     },
 173:     strng_str =
 174:     {
 175:         (char *) CNIL,  0,  STRSPP,     STRNG,  128,
 176:         &str_items, &str_pages, &str_name,
 177:         (struct heads *) CNIL, (char *)CNIL
 178:     },
 179:     int_str =
 180:     {
 181:         (char *) CNIL,  0,  INTSPP,     INT,    1,
 182:         &int_items, &int_pages, &int_name,
 183:         (struct heads *) CNIL, (char *)CNIL
 184:     },
 185:     dtpr_str =
 186:     {
 187:         (char *) CNIL,  0,  DTPRSPP,    DTPR,   2,
 188:         &dtpr_items,    &dtpr_pages,    &dtpr_name,
 189:         (struct heads *) CNIL, (char *)CNIL
 190:     },
 191:     doub_str =
 192:     {
 193:         (char *) CNIL,  0,  DOUBSPP,    DOUB,   2,
 194:         &doub_items,    &doub_pages,    &doub_name,
 195:         (struct heads *) CNIL, (char *)CNIL
 196:     },
 197:     array_str =
 198:     {
 199:         (char *) CNIL,  0,  ARRAYSPP,   ARRAY,  5,
 200:         &array_items,   &array_pages,   &array_name,
 201:         (struct heads *) CNIL, (char *)CNIL
 202:     },
 203:     other_str =
 204:     {
 205:         (char *) CNIL,  0,  STRSPP,     OTHER,  128,
 206:         &other_items,   &other_pages,   &other_name,
 207:         (struct heads *) CNIL, (char *)CNIL
 208:     },
 209: 
 210:     sdot_str =
 211:     {
 212:         (char *) CNIL,  0,  SDOTSPP,    SDOT,   2,
 213:         &sdot_items,    &sdot_pages,    &sdot_name,
 214:         (struct heads *) CNIL, (char *)CNIL
 215:     },
 216:     val_str =
 217:     {
 218:         (char *) CNIL,  0,  VALSPP,     VALUE,  1,
 219:         &val_items, &val_pages, &val_name,
 220:         (struct heads *) CNIL, (char *)CNIL
 221:     },
 222: funct_str =
 223:     {
 224:         (char *) CNIL,  0,  BCDSPP,     BCD,    2,
 225:         &funct_items,   &funct_pages,   &funct_name,
 226:         (struct heads *) CNIL, (char *)CNIL
 227:     },
 228: vect_str =
 229:     {
 230: 
 231:         (char *) CNIL,  0,  VECTORSPP,  VECTOR, 1,
 232:         &vect_items,    &vect_pages,    &vect_name,
 233:         (struct heads *) CNIL, (char *)CNIL
 234:     },
 235: vecti_str =
 236:     {
 237: 
 238:         (char *) CNIL,  0,  VECTORSPP,  VECTORI, 1,
 239:         &vect_items,    &vecti_pages,   &vecti_name,
 240:         (struct heads *) CNIL, (char *)CNIL
 241:     },
 242: 
 243: hunk_str[7] =
 244:     {
 245:         {
 246:             (char *) CNIL,  0,  HUNK2SPP,   HUNK2,  2,
 247:             &hunk_items[0], &hunk_pages[0], &hunk_name[0],
 248:             (struct heads *) CNIL, (char *)CNIL
 249:         },
 250:         {
 251:             (char *) CNIL,  0,  HUNK4SPP,   HUNK4,  4,
 252:             &hunk_items[1], &hunk_pages[1], &hunk_name[1],
 253:             (struct heads *) CNIL, (char *)CNIL
 254:         },
 255:         {
 256:             (char *) CNIL,  0,  HUNK8SPP,   HUNK8,  8,
 257:             &hunk_items[2], &hunk_pages[2], &hunk_name[2],
 258:             (struct heads *) CNIL, (char *)CNIL
 259:         },
 260:         {
 261:             (char *) CNIL,  0,  HUNK16SPP,  HUNK16, 16,
 262:             &hunk_items[3], &hunk_pages[3], &hunk_name[3],
 263:             (struct heads *) CNIL, (char *)CNIL
 264:         },
 265:         {
 266:             (char *) CNIL,  0,  HUNK32SPP,  HUNK32, 32,
 267:             &hunk_items[4], &hunk_pages[4], &hunk_name[4],
 268:             (struct heads *) CNIL, (char *)CNIL
 269:         },
 270:         {
 271:             (char *) CNIL,  0,  HUNK64SPP,  HUNK64, 64,
 272:             &hunk_items[5], &hunk_pages[5], &hunk_name[5],
 273:             (struct heads *) CNIL, (char *)CNIL
 274:         },
 275:         {
 276:             (char *) CNIL,  0,  HUNK128SPP, HUNK128, 128,
 277:             &hunk_items[6], &hunk_pages[6], &hunk_name[6],
 278:             (struct heads *) CNIL, (char *)CNIL
 279:         }
 280:     };
 281: extern struct readtable { unsigned char ctable[132]; } initread;
 282: unsigned char *ctable = initread.ctable;
 283: int gensymcounter = 0;
 284: 
 285: int hashtop = HASHTOP;
 286: int xcycle = 0;     /* used by xsbrk   */
 287: struct  atom *hasht[HASHTOP];
 288: lispval datalim;    /* pointer to next location to allocate */
 289: 
 290: char typetable[TTSIZE+1] = {UNBO,ATOM,PORT,INT,INT,INT,INT,INT,INT,INT,INT,INT,INT,INT,INT,INT,INT,INT,INT};
 291: 
 292: /* this must be the last thing allocated in this file	*/
 293: char lsbrkpnt,zfreespace;

Defined variables

atmlen defined in line 65; never used
atom_str defined in line 167; used 11 times
bcdtrsw defined in line 100; never used
bind_lists defined in line 161; used 3 times
bnp defined in line 57; never used
bnplim defined in line 59; never used
ctable defined in line 282; used 16 times
curhbeg defined in line 114; used 1 times
depth defined in line 95; never used
dmpmode defined in line 91; never used
endstrb defined in line 71; never used
eofpname defined in line 82; used 1 times
errp defined in line 131; used 1 times
evalhcallsw defined in line 101; never used
exception defined in line 106; never used
exsp defined in line 77; never used
fakettsize defined in line 159; used 4 times
funhcallsw defined in line 102; never used
fvirgin defined in line 129; used 9 times
gcstrings defined in line 160; used 4 times
gctime defined in line 130; never used
hash defined in line 64; never used
hasht defined in line 287; used 7 times
hashtop defined in line 285; never used
holesize defined in line 116; never used
i_strbuf defined in line 69; used 2 times
itemp defined in line 120; never used
keybin defined in line 39; never used
lbot defined in line 53; never used
lctrace defined in line 128; never used
lineleng defined in line 36; never used
lsbrkpnt defined in line 293; never used
namptr defined in line 51; never used
nilpname defined in line 81; used 1 times
np defined in line 54; never used
nplim defined in line 56; never used
orgbnp defined in line 58; never used
orgnp defined in line 50; never used
page_limit defined in line 147; used 1 times
protflag defined in line 40; never used
purepage defined in line 158; used 9 times
rbktf defined in line 41; never used
rcsid defined in line 2; never used
retval defined in line 97; never used
rlevel defined in line 37; used 1 times
rsetsw defined in line 99; never used
sigdelay defined in line 122; never used
sigintcnt defined in line 107; never used
sigstruck defined in line 122; never used
str_current defined in line 164; used 3 times
strbuf defined in line 70; never used
tgcthresh defined in line 146; used 2 times
trcur defined in line 139; used 4 times
trhead defined in line 137; used 4 times
trleft defined in line 140; used 4 times
ttsize defined in line 148; used 1 times
typetable defined in line 290; never used
uctolc defined in line 85; used 3 times
usehole defined in line 115; used 1 times
xcycle defined in line 286; never used
xsp defined in line 76; never used
xstack defined in line 75; used 2 times
  • in line 77(2)
zfreespace defined in line 293; never used

Defined struct's

readtable defined in line 281; never used

Defined macros

HOLE defined in line 111; used 3 times
Last modified: 1985-08-14
Generated: 2016-12-26
Generated by src2html V0.67
page hit count: 1906
Valid CSS Valid XHTML 1.0 Strict