|
|
1.1 root 1: /*
2: * For trancendental debugger pi; compatible with sdb(1).
3: *
4: * This file gives definitions supplementing <a.out.h> for permanent
5: * symbol table entries. These must have one of the N_STAB bits on,
6: * and are subject to relocation according to the masks in <a.out.h>.
7: *
8: * IF YOU ADD DEFINITIONS, ADD THEM TO nm.c as well
9: *
10: * stabs for text symbols (must be 0x?4):
11: */
12: #define N_BFUN 0x24 /* procedure: name,,0,lineno,address */
13: #define N_FUN 0x24
14: #define N_NARGS 0x34 /* function call: ,,0,nbytes,address */
15: #define N_SLINE 0x44 /* src line: ,,0,lineno,address */
16: #define N_SO 0x64 /* source file: name,,0,lineno,address */
17: #define N_SOL 0x84 /* #include file: name,,0,lineno,address */
18: #define N_ESO 0x94 /* end source file: name,,0,lineno,address */
19: #define N_ENTRY 0xa4 /* alternate entry: name,,0,lineno,address */
20: #define N_RFUN 0xb4 /* return from function: ,,0,lineno,address */
21: #define N_LBRAC 0xc4 /* left bracket: ,,0,level,address */
22: #define N_RBRAC 0xd4 /* right bracket: ,,0,level,address */
23: #define N_EFUN 0xf4 /* end of function: name,,0,lineno,address */
24: /*
25: * stabs for data symbols (must be 0x?6):
26: */
27: #define N_STSYM 0x26 /* static symbol: name,,0,type,address */
28: /*
29: * stabs for bss symbols (must be 0x?8):
30: */
31: #define N_LCSYM 0x28 /* .lcomm symbol: name,,0,type,address */
32: #define N_ECOML 0xe8 /* end common (local name): ,,address */
33: /*
34: * stabs for non-relocated stuff:
35: */
36: #define N_GSYM 0x20 /* global symbol: name,,0,type,0 */
37: #define N_FNAME 0x22 /* procedure name (f77 kludge): name,,0 */
38: #define N_STFUN 0x32 /* static function: name,,0,type,0 */
39: #define N_RSYM 0x40 /* register sym: name,,0,type,register */
40: #define N_BSTR 0x5c /* begin structure: name,,0,type,length */
41: #define N_ESTR 0x5e /* end structure: name,,0,type,length */
42: #define N_SSYM 0x60 /* structure elt: name,,0,type,offset */
43: #define N_SFLD 0x70 /* structure field: name,,0,type,offset */
44: #define N_LSYM 0x80 /* local sym: name,,0,type,offset */
45: #define N_PSYM 0xa0 /* parameter: name,,0,type,offset */
46: /* 0xc0 /* former N_LBRAC */
47: /* 0xe0 /* former N_RBRAC */
48: #define N_BCOMM 0xe2 /* begin common: name,, */
49: #define N_ECOMM 0xe4 /* end common: name,, */
50: #define N_VER 0xf0 /* symbol table version number */
51: #define N_TYID 0xfa /* struct, union, or enum name */
52: #define N_DIM 0xfc /* dimension for arrays */
53: #define N_LENG 0xfe /* second stab entry with length information */
54:
55: /*
56: * for the berkeley pascal compiler, pc(1):
57: */
58: #define N_PC 0x30 /* global pascal symbol: name,,0,subtype,line */
59:
60: #ifdef DESCSYMBS
61:
62: /* this stuff is taken from mfile1.h */
63:
64: /* type names, used in symbol table building */
65: # define TNULL 0
66: # define FARG 1
67: # define CHAR 2
68: # define SHORT 3
69: # define INT 4
70: # define LONG 5
71: # define FLOAT 6
72: # define DOUBLE 7
73: # define STRTY 8
74: # define UNIONTY 9
75: # define ENUMTY 10
76: # define MOETY 11
77: # define UCHAR 12
78: # define USHORT 13
79: # define UNSIGNED 14
80: # define ULONG 15
81: # define VOID 16
82: # define UNDEF 17
83:
84: /* type modifiers */
85:
86: # define PTR 040
87: # define FTN 0100
88: # define ARY 0140
89:
90: /* type packing constants */
91:
92: # define MTMASK 03
93: # define BTMASK 037
94: # define BTSHIFT 5
95: # define TSHIFT 2
96: # define TMASK (MTMASK<<BTSHIFT)
97: # define TMASK1 (MTMASK<<(BTSHIFT+TSHIFT))
98:
99: # define BTYPE(x) ((x)&BTMASK) /* basic type of x */
100:
101: #endif DESCSYMBS
102:
103: #ifdef DESCNAMES
104:
105: char *basenames[] = {
106: "<null>", /* 0 */
107: "<arg>", /* 1 function argument */
108: "char", /* 2 */
109: "short", /* 3 */
110: "int", /* 4 */
111: "long", /* 5 */
112: "float", /* 6 */
113: "double", /* 7 */
114: "struct", /* 8 */
115: "union", /* 9 */
116: "enum", /* 10 */
117: "memen", /* 11 member of enumeration */
118: "u_char", /* 12 unsigned character */
119: "u_short", /* 13 */
120: "u_int", /* 14 */
121: "u_long", /* 15 */
122: "void", /* 16 */
123: "<undef>", /* 17 */
124: "<???>"
125: };
126:
127: char qualchars[] = {
128: '\0', /* 0 none */
129: '*', /* 1 pointer */
130: '(', /* 2 function */
131: '[', /* 3 array */
132: };
133:
134: #endif DESCNAMES
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.