|
|
1.1 root 1: #ident "@(#)/usr/include/reloc.h.sl 1.2 4.1 09/02/86 43787 AT&T-SF"
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 || u3b15 || u3b5 || u3b2 generics
57: * 32-bit direct reference
58: */
59: #define R_DIR32 06
60:
61: /*
62: * M32 || u3b15 || u3b5 || u3b2 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: * Motorola 68000
81: *
82: * ... uses R_RELBYTE, R_RELWORD, R_RELLONG, R_PCRBYTE and R_PCRWORD as for
83: * DEC machines above.
84: */
85:
86:
87: #define RELOC struct reloc
88: #define RELSZ 10 /* sizeof(RELOC) */
89:
90: /* Definition of a "TV" relocation type */
91:
92: #if N3B
93: #define ISTVRELOC(x) ((x==R_OPT16)||(x==R_IND24)||(x==R_IND32))
94: #endif
95: #if B16 || X86
96: #define ISTVRELOC(x) (x==R_IND16)
97: #endif
98: #if M32 || u3b15 || u3b5 || u3b2
99: #define ISTVRELOC(x) (x!=x) /* never the case */
100: #endif
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.