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