|
|
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.