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