Annotation of researchv9/cmd/strip/stab.h, revision 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.