|
|
1.1 ! root 1: /* ! 2: * our internal idea of a symbol ! 3: */ ! 4: ! 5: struct sym { ! 6: char *y_name; ! 7: struct sym *y_next; ! 8: struct sym *y_locals; ! 9: char y_type; /* e.g. TEXT or DATA or STAB */ ! 10: char y_ltype; /* e.g. RSYM or LSYM */ ! 11: WORD y_value; ! 12: }; ! 13: ! 14: /* ! 15: * global types, found in y_type ! 16: */ ! 17: ! 18: #define S_STAB 0 /* see y_ltype for more info */ ! 19: #define S_TEXT 1 ! 20: #define S_DATA 2 ! 21: #define S_ABS 3 ! 22: ! 23: /* ! 24: * things found in y_ltype ! 25: * these map in some way to sdb-style stabs, ! 26: * but the goddamn things vary between different alleged unixes ! 27: */ ! 28: ! 29: #define S_LSYM 0 /* local: offset from frame pointer */ ! 30: #define S_RSYM 1 /* register */ ! 31: #define S_PSYM 2 /* procedure parameter offset */ ! 32: #define S_STSYM 3 /* static symbol */ ! 33: ! 34: extern struct sym *symtab; ! 35: extern struct sym *cursym; ! 36: struct sym *lookup(); ! 37: WORD findsym();
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.