1: /*
   2:  * Definitions and declarations used for storage management.
   3:  */
   4: 
   5: #define MARK        0100000     /* high-order bit for gc marking */
   6: #define SQLINC          128     /* increment for s. q. list space */
   7: 
   8: /*
   9:  * External definitions.
  10:  */
  11: 
  12: extern unsigned heapneed;       /* stated need for heap space */
  13: extern unsigned strneed;        /* stated need for string space */
  14: extern int *boundary;           /* Icon/C stack boundary address */
  15: extern struct descrip *globals;     /* start of global variables */
  16: extern struct descrip *eglobals;    /* end of global variables */
  17: extern struct descrip *gnames;      /* start of global variable names */
  18: extern struct descrip *egnames;     /* end of global variable names */
  19: extern struct descrip *statics;     /* start of static variables */
  20: extern struct descrip *estatics;    /* end of static variables */
  21: extern struct descrip tended[];     /* tended descriptors, used by lib routines */
  22: extern struct descrip etended[];    /* end of tended descriptors */
  23: extern struct descrip **sqlist;     /* beginning of string qualifier list */
  24: extern struct descrip **sqfree;     /* string qualifier list free pointer */
  25: extern struct descrip **esqlist;    /* end of string qualifier list */
  26: 
  27: /*
  28:  * Test if *x is a pointer.
  29:  */
  30: #define isptr(x)     ((!QUAL(*x)) && (VAR(*x) || POINTER(*x)))
  31: /*
  32:  * Get type of block pointed at by x.
  33:  */
  34: #define blktype(x)   (*(int *)x)
  35: /*
  36:  * getsize(x) takes the block pointed to by x and if the size of
  37:  *  the block as indicated by bsizes[] is non-zero it returns the
  38:  *  indicated size, otherwise it returns the second word in the
  39:  *  block which should be the size.
  40:  */
  41: #define getsize(x) (bsizes[*(int *)x & ~MARK] ? \
  42:              bsizes[*(int *)x & ~MARK] : *((int *)x + 1))

Defined macros

MARK defined in line 5; used 8 times
SQLINC defined in line 6; used 2 times
blktype defined in line 34; used 21 times
getsize defined in line 41; used 10 times
isptr defined in line 30; used 3 times

Usage of this include

Last modified: 1984-11-18
Generated: 2016-12-26
Generated by src2html V0.67
page hit count: 734
Valid CSS Valid XHTML 1.0 Strict