Annotation of researchv10dc/cmd/kasb/reloc.h, revision 1.1.1.1

1.1       root        1: /*     @(#)reloc.h     2.1     */
                      2: struct reloc {
                      3:        long    r_vaddr;        /* (virtual) address of reference */
                      4:        long    r_symndx;       /* index into symbol table */
                      5:        unsigned short  r_type;         /* relocation type */
                      6:        };
                      7: 
                      8: 
                      9: /*
                     10:  *   relocation types for all products and generics
                     11:  */
                     12: 
                     13: /*
                     14:  * All generics
                     15:  *     reloc. already performed to symbol in the same section
                     16:  */
                     17: #define  R_ABS         0
                     18: 
                     19: /*
                     20:  * X86 generic
                     21:  *     8-bit offset reference in 8-bits
                     22:  *     8-bit offset reference in 16-bits 
                     23:  *     12-bit segment reference
                     24:  *     auxiliary relocation entry
                     25:  */
                     26: #define        R_OFF8          07
                     27: #define R_OFF16                010
                     28: #define        R_SEG12         011
                     29: #define        R_AUX           013
                     30: 
                     31: /*
                     32:  * B16 and X86 generics
                     33:  *     16-bit direct reference
                     34:  *     16-bit "relative" reference
                     35:  *     16-bit "indirect" (TV) reference
                     36:  */
                     37: #define  R_DIR16       01
                     38: #define  R_REL16       02
                     39: #define  R_IND16       03
                     40: 
                     41: /*
                     42:  * 3B generic
                     43:  *     24-bit direct reference
                     44:  *     24-bit "relative" reference
                     45:  *     16-bit optimized "indirect" TV reference
                     46:  *     24-bit "indirect" TV reference
                     47:  *     32-bit "indirect" TV reference
                     48:  */
                     49: #define  R_DIR24       04
                     50: #define  R_REL24       05
                     51: #define  R_OPT16       014
                     52: #define  R_IND24       015
                     53: #define  R_IND32       016
                     54: 
                     55: /*
                     56:  * 3B and M32 generics
                     57:  *     32-bit direct reference
                     58:  */
                     59: #define  R_DIR32       06
                     60: 
                     61: /*
                     62:  * M32 generic
                     63:  *     32-bit direct reference with bytes swapped
                     64:  */
                     65: #define  R_DIR32S      012
                     66: 
                     67: /*
                     68:  * DEC Processors  VAX 11/780 and VAX 11/750
                     69:  *
                     70:  */
                     71: 
                     72: #define R_RELBYTE      017
                     73: #define R_RELWORD      020
                     74: #define R_RELLONG      021
                     75: #define R_PCRBYTE      022
                     76: #define R_PCRWORD      023
                     77: #define R_PCRLONG      024
                     78: 
                     79: 
                     80: #define        RELOC   struct reloc
                     81: #define        RELSZ   10      /* sizeof(RELOC) */
                     82: 
                     83:        /* Definition of a "TV" relocation type */
                     84: 
                     85: #if N3B
                     86: #define ISTVRELOC(x)   ((x==R_OPT16)||(x==R_IND24)||(x==R_IND32))
                     87: #endif
                     88: #if B16 || X86
                     89: #define ISTVRELOC(x)   (x==R_IND16)
                     90: #endif
                     91: #if M32
                     92: #define ISTVRELOC(x)   (x!=x)  /* never the case */
                     93: #endif

unix.superglobalmegacorp.com

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