|
|
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
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.