Annotation of researchv9/cmd/strip/stab.h, revision 1.1.1.1

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

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.