|
|
1.1 ! root 1: #include "../h/rt.h" ! 2: ! 3: /* ! 4: * Heap block size table (sizes given in bytes). A size of -1 is used ! 5: * for types that have no heap blocks; a size of 0 indicates that the ! 6: * second word of the block contains the size; a value greater than ! 7: * 0 is used for types with constant sized blocks. ! 8: */ ! 9: ! 10: int bsizes[] = { ! 11: -1, /* 0, not used */ ! 12: -1, /* 1, not used */ ! 13: sizeof(struct b_int), /* T_LONGINT (2), long integer type */ ! 14: sizeof(struct b_real), /* T_REAL (3), real number */ ! 15: sizeof(struct b_cset), /* T_CSET (4), cset */ ! 16: sizeof(struct b_file), /* T_FILE (5), file block */ ! 17: 0, /* T_PROC (6), procedure block */ ! 18: sizeof(struct b_list), /* T_LIST (7), list header block */ ! 19: sizeof(struct b_table), /* T_TABLE (8), table header block */ ! 20: 0, /* T_RECORD (9), record block */ ! 21: sizeof(struct b_telem), /* T_TELEM (10), table element block */ ! 22: 0, /* T_LELEM (11), list element block */ ! 23: sizeof(struct b_tvsubs), /* T_TVSUBS (12), substring trapped variable */ ! 24: -1, /* 13, not used */ ! 25: sizeof(struct b_tvtbl), /* T_TVTBL (14), table element trapped variable */ ! 26: -1, /* T_TVPOS (15), &pos trapped variable */ ! 27: -1, /* T_TVRAND (16), &random trapped variable */ ! 28: -1, /* T_TVTACE (17), &trace trapped variable */ ! 29: -1, /* T_ESTACK (18), expression stack header */ ! 30: 0 /* T_EBLOCK (19), expression heap block */ ! 31: #ifdef SETS ! 32: , ! 33: sizeof(struct b_set), /* T_SET (20), set header block */ ! 34: sizeof(struct b_selem) /* T_SELEM (21), set element block */ ! 35: #endif SETS ! 36: }; ! 37: ! 38: /* ! 39: * Table of offsets (in bytes) to first descriptor in blocks. -1 is for ! 40: * non-heap types, 0 for blocks with no descriptors. ! 41: */ ! 42: int firstd[] = { ! 43: -1, /* 0, not used */ ! 44: -1, /* 1, not used */ ! 45: 0, /* T_LONGINT (2), long integer type */ ! 46: 0, /* T_REAL (3), real number */ ! 47: 0, /* T_CSET (4), cset */ ! 48: 3*WORDSIZE, /* T_FILE (5), file block */ ! 49: 7*WORDSIZE, /* T_PROC (6), procedure block */ ! 50: 2*WORDSIZE, /* T_LIST (7), list header block */ ! 51: 2*WORDSIZE, /* T_TABLE (8), table header block */ ! 52: 3*WORDSIZE, /* T_RECORD (9), record block */ ! 53: 2*WORDSIZE, /* T_TELEM (10), table element block */ ! 54: 5*WORDSIZE, /* T_LELEM (11), list element block */ ! 55: 3*WORDSIZE, /* T_TVSUBS (12), substring trapped variable */ ! 56: -1, /* 13, not used */ ! 57: 2*WORDSIZE, /* T_TVTBL (14), table element trapped variable */ ! 58: -1, /* T_TVPOS (15), &pos trapped variable */ ! 59: -1, /* T_TVRAND (16), &random trapped variable*/ ! 60: -1, /* T_TVTACE (17), &trace trapped variable */ ! 61: -1, /* T_ESTACK (18), expression stack header */ ! 62: 5*WORDSIZE /* T_EBLOCK (19), expression heap block */ ! 63: #ifdef SETS ! 64: , ! 65: 2*WORDSIZE, /* T_SET (20), set header block */ ! 66: 2*WORDSIZE /* T_SELEM (21), set element block */ ! 67: #endif SETS ! 68: }; ! 69: ! 70: /* ! 71: * Table of block names used by debugging functions. ! 72: */ ! 73: char *blkname[] = { ! 74: "illegal name", /* 0, not used */ ! 75: "illegal name", /* 1, not used */ ! 76: "long integer", /* T_LONGINT (2), long integer type */ ! 77: "real number", /* T_REAL (3), real number */ ! 78: "cset", /* T_CSET (4), cset */ ! 79: "file", /* T_FILE (5), file block */ ! 80: "procedure", /* T_PROC (6), procedure block */ ! 81: "list header block", /* T_LIST (7), list header block */ ! 82: "table header block", /* T_TABLE (8), table header block */ ! 83: "record", /* T_RECORD (9), record block */ ! 84: "table element block", /* T_TELEM (10), table element block */ ! 85: "list element block", /* T_LELEM (11), list element block */ ! 86: "substring tv", /* T_TVSUBS (12), substring trapped variable */ ! 87: "illegal name", /* 13, not used */ ! 88: "table element tv", /* T_TVTBL (14), table element trapped variable */ ! 89: "illegal name", /* T_TVPOS (15), &pos trapped variable */ ! 90: "illegal name", /* T_TVRAND (16), &random trapped variable */ ! 91: "illegal name", /* T_TVTACE (17), &trace trapped variable */ ! 92: "expression stack", /* T_ESTACK (18), expression stack header */ ! 93: "refresh block" /* T_EBLOCK (19), expression heap block */ ! 94: #ifdef SETS ! 95: , ! 96: "set header block", /* T_SET (20), set header block */ ! 97: "set member" /* T_SELEM (21), set element block */ ! 98: #endif SETS ! 99: };
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.