annotate agent/src/share/classes/sun/jvm/hotspot/debugger/win32/coff/TypeIndicators.java @ 2072:d6cd0d55d0b5

6987812: 2/3 SAJDI: "gHotSpotVMTypes was not initialized properly in the remote process" Summary: Change ExportDirectoryTableImpl to return the 'Export RVA' field without modification. Read 'Base Of Data' field in optional header when PE32 format COFF file is read. Refine search for dbgeng.dll and dbghelp.dll. Other cleanups. Reviewed-by: swamyv, poonam
author dcubed
date Thu, 23 Dec 2010 07:58:35 -0800
parents c18cbe5936b8
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
a61af66fc99e Initial load
duke
parents:
diff changeset
1 /*
1552
c18cbe5936b8 6941466: Oracle rebranding changes for Hotspot repositories
trims
parents: 0
diff changeset
2 * Copyright (c) 2000, Oracle and/or its affiliates. All rights reserved.
0
a61af66fc99e Initial load
duke
parents:
diff changeset
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
a61af66fc99e Initial load
duke
parents:
diff changeset
4 *
a61af66fc99e Initial load
duke
parents:
diff changeset
5 * This code is free software; you can redistribute it and/or modify it
a61af66fc99e Initial load
duke
parents:
diff changeset
6 * under the terms of the GNU General Public License version 2 only, as
a61af66fc99e Initial load
duke
parents:
diff changeset
7 * published by the Free Software Foundation.
a61af66fc99e Initial load
duke
parents:
diff changeset
8 *
a61af66fc99e Initial load
duke
parents:
diff changeset
9 * This code is distributed in the hope that it will be useful, but WITHOUT
a61af66fc99e Initial load
duke
parents:
diff changeset
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
a61af66fc99e Initial load
duke
parents:
diff changeset
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
a61af66fc99e Initial load
duke
parents:
diff changeset
12 * version 2 for more details (a copy is included in the LICENSE file that
a61af66fc99e Initial load
duke
parents:
diff changeset
13 * accompanied this code).
a61af66fc99e Initial load
duke
parents:
diff changeset
14 *
a61af66fc99e Initial load
duke
parents:
diff changeset
15 * You should have received a copy of the GNU General Public License version
a61af66fc99e Initial load
duke
parents:
diff changeset
16 * 2 along with this work; if not, write to the Free Software Foundation,
a61af66fc99e Initial load
duke
parents:
diff changeset
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
a61af66fc99e Initial load
duke
parents:
diff changeset
18 *
1552
c18cbe5936b8 6941466: Oracle rebranding changes for Hotspot repositories
trims
parents: 0
diff changeset
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
c18cbe5936b8 6941466: Oracle rebranding changes for Hotspot repositories
trims
parents: 0
diff changeset
20 * or visit www.oracle.com if you need additional information or have any
c18cbe5936b8 6941466: Oracle rebranding changes for Hotspot repositories
trims
parents: 0
diff changeset
21 * questions.
0
a61af66fc99e Initial load
duke
parents:
diff changeset
22 *
a61af66fc99e Initial load
duke
parents:
diff changeset
23 */
a61af66fc99e Initial load
duke
parents:
diff changeset
24
a61af66fc99e Initial load
duke
parents:
diff changeset
25 package sun.jvm.hotspot.debugger.win32.coff;
a61af66fc99e Initial load
duke
parents:
diff changeset
26
a61af66fc99e Initial load
duke
parents:
diff changeset
27 /** Enumerates the types of COFF object file relocations for all
a61af66fc99e Initial load
duke
parents:
diff changeset
28 currently-supported processors. (Some of the descriptions are
a61af66fc99e Initial load
duke
parents:
diff changeset
29 taken directly from Microsoft's documentation and are copyrighted
a61af66fc99e Initial load
duke
parents:
diff changeset
30 by Microsoft.) */
a61af66fc99e Initial load
duke
parents:
diff changeset
31
a61af66fc99e Initial load
duke
parents:
diff changeset
32 public interface TypeIndicators {
a61af66fc99e Initial load
duke
parents:
diff changeset
33 //
a61af66fc99e Initial load
duke
parents:
diff changeset
34 // I386 processors
a61af66fc99e Initial load
duke
parents:
diff changeset
35 //
a61af66fc99e Initial load
duke
parents:
diff changeset
36
a61af66fc99e Initial load
duke
parents:
diff changeset
37 /** This relocation is ignored. */
a61af66fc99e Initial load
duke
parents:
diff changeset
38 public static final short IMAGE_REL_I386_ABSOLUTE = 0x0000;
a61af66fc99e Initial load
duke
parents:
diff changeset
39 /** Not supported. */
a61af66fc99e Initial load
duke
parents:
diff changeset
40 public static final short IMAGE_REL_I386_DIR16 = (short) 0x0001;
a61af66fc99e Initial load
duke
parents:
diff changeset
41 /** Not supported. */
a61af66fc99e Initial load
duke
parents:
diff changeset
42 public static final short IMAGE_REL_I386_REL16 = (short) 0x0002;
a61af66fc99e Initial load
duke
parents:
diff changeset
43 /** The target?s 32-bit virtual address. */
a61af66fc99e Initial load
duke
parents:
diff changeset
44 public static final short IMAGE_REL_I386_DIR32 = (short) 0x0006;
a61af66fc99e Initial load
duke
parents:
diff changeset
45 /** The target?s 32-bit relative virtual address. */
a61af66fc99e Initial load
duke
parents:
diff changeset
46 public static final short IMAGE_REL_I386_DIR32NB = (short) 0x0007;
a61af66fc99e Initial load
duke
parents:
diff changeset
47 /** Not supported. */
a61af66fc99e Initial load
duke
parents:
diff changeset
48 public static final short IMAGE_REL_I386_SEG12 = (short) 0x0009;
a61af66fc99e Initial load
duke
parents:
diff changeset
49 /** The 16-bit-section index of the section containing the
a61af66fc99e Initial load
duke
parents:
diff changeset
50 target. This is used to support debugging information. */
a61af66fc99e Initial load
duke
parents:
diff changeset
51 public static final short IMAGE_REL_I386_SECTION = (short) 0x000A;
a61af66fc99e Initial load
duke
parents:
diff changeset
52 /** The 32-bit offset of the target from the beginning of its
a61af66fc99e Initial load
duke
parents:
diff changeset
53 section. This is used to support debugging information as well
a61af66fc99e Initial load
duke
parents:
diff changeset
54 as static thread local storage. */
a61af66fc99e Initial load
duke
parents:
diff changeset
55 public static final short IMAGE_REL_I386_SECREL = (short) 0x000B;
a61af66fc99e Initial load
duke
parents:
diff changeset
56 /** The 32-bit relative displacement to the target. This supports
a61af66fc99e Initial load
duke
parents:
diff changeset
57 the x86 relative branch and call instructions. */
a61af66fc99e Initial load
duke
parents:
diff changeset
58 public static final short IMAGE_REL_I386_REL32 = (short) 0x0014;
a61af66fc99e Initial load
duke
parents:
diff changeset
59
a61af66fc99e Initial load
duke
parents:
diff changeset
60 //
a61af66fc99e Initial load
duke
parents:
diff changeset
61 // MIPS processors
a61af66fc99e Initial load
duke
parents:
diff changeset
62 //
a61af66fc99e Initial load
duke
parents:
diff changeset
63
a61af66fc99e Initial load
duke
parents:
diff changeset
64 /** This relocation is ignored. */
a61af66fc99e Initial load
duke
parents:
diff changeset
65 public static final short IMAGE_REL_MIPS_ABSOLUTE = (short) 0x0000;
a61af66fc99e Initial load
duke
parents:
diff changeset
66 /** The high 16 bits of the target's 32-bit virtual address. */
a61af66fc99e Initial load
duke
parents:
diff changeset
67 public static final short IMAGE_REL_MIPS_REFHALF = (short) 0x0001;
a61af66fc99e Initial load
duke
parents:
diff changeset
68 /** The target's 32-bit virtual address. */
a61af66fc99e Initial load
duke
parents:
diff changeset
69 public static final short IMAGE_REL_MIPS_REFWORD = (short) 0x0002;
a61af66fc99e Initial load
duke
parents:
diff changeset
70 /** The low 26 bits of the target's virtual address. This
a61af66fc99e Initial load
duke
parents:
diff changeset
71 supports the MIPS J and JAL instructions. */
a61af66fc99e Initial load
duke
parents:
diff changeset
72 public static final short IMAGE_REL_MIPS_JMPADDR = (short) 0x0003;
a61af66fc99e Initial load
duke
parents:
diff changeset
73 /** The high 16 bits of the target's 32-bit virtual address. Used
a61af66fc99e Initial load
duke
parents:
diff changeset
74 for the first instruction in a two-instruction sequence that
a61af66fc99e Initial load
duke
parents:
diff changeset
75 loads a full address. This relocation must be immediately
a61af66fc99e Initial load
duke
parents:
diff changeset
76 followed by a PAIR relocations whose SymbolTableIndex contains a
a61af66fc99e Initial load
duke
parents:
diff changeset
77 signed 16-bit displacement which is added to the upper 16 bits
a61af66fc99e Initial load
duke
parents:
diff changeset
78 taken from the location being relocated. */
a61af66fc99e Initial load
duke
parents:
diff changeset
79 public static final short IMAGE_REL_MIPS_REFHI = (short) 0x0004;
a61af66fc99e Initial load
duke
parents:
diff changeset
80 /** The low 16 bits of the target's virtual address. */
a61af66fc99e Initial load
duke
parents:
diff changeset
81 public static final short IMAGE_REL_MIPS_REFLO = (short) 0x0005;
a61af66fc99e Initial load
duke
parents:
diff changeset
82 /** 16-bit signed displacement of the target relative to the Global
a61af66fc99e Initial load
duke
parents:
diff changeset
83 Pointer (GP) register. */
a61af66fc99e Initial load
duke
parents:
diff changeset
84 public static final short IMAGE_REL_MIPS_GPREL = (short) 0x0006;
a61af66fc99e Initial load
duke
parents:
diff changeset
85 /** Same as IMAGE_REL_MIPS_GPREL. */
a61af66fc99e Initial load
duke
parents:
diff changeset
86 public static final short IMAGE_REL_MIPS_LITERAL = (short) 0x0007;
a61af66fc99e Initial load
duke
parents:
diff changeset
87 /** The 16-bit section index of the section containing the target.
a61af66fc99e Initial load
duke
parents:
diff changeset
88 This is used to support debugging information. */
a61af66fc99e Initial load
duke
parents:
diff changeset
89 public static final short IMAGE_REL_MIPS_SECTION = (short) 0x000A;
a61af66fc99e Initial load
duke
parents:
diff changeset
90 /** The 32-bit offset of the target from the beginning of its
a61af66fc99e Initial load
duke
parents:
diff changeset
91 section. This is used to support debugging information as well
a61af66fc99e Initial load
duke
parents:
diff changeset
92 as static thread local storage. */
a61af66fc99e Initial load
duke
parents:
diff changeset
93 public static final short IMAGE_REL_MIPS_SECREL = (short) 0x000B;
a61af66fc99e Initial load
duke
parents:
diff changeset
94 /** The low 16 bits of the 32-bit offset of the target from the
a61af66fc99e Initial load
duke
parents:
diff changeset
95 beginning of its section. */
a61af66fc99e Initial load
duke
parents:
diff changeset
96 public static final short IMAGE_REL_MIPS_SECRELLO = (short) 0x000C;
a61af66fc99e Initial load
duke
parents:
diff changeset
97 /** The high 16 bits of the 32-bit offset of the target from the
a61af66fc99e Initial load
duke
parents:
diff changeset
98 beginning of its section. A PAIR relocation must immediately
a61af66fc99e Initial load
duke
parents:
diff changeset
99 follow this on. The SymbolTableIndex of the PAIR relocation
a61af66fc99e Initial load
duke
parents:
diff changeset
100 contains a signed 16-bit displacement, which is added to the
a61af66fc99e Initial load
duke
parents:
diff changeset
101 upper 16 bits taken from the location being relocated. */
a61af66fc99e Initial load
duke
parents:
diff changeset
102 public static final short IMAGE_REL_MIPS_SECRELHI = (short) 0x000D;
a61af66fc99e Initial load
duke
parents:
diff changeset
103 /** The low 26 bits of the target's virtual address. This supports
a61af66fc99e Initial load
duke
parents:
diff changeset
104 the MIPS16 JAL instruction. */
a61af66fc99e Initial load
duke
parents:
diff changeset
105 public static final short IMAGE_REL_MIPS_JMPADDR16 = (short) 0x0010;
a61af66fc99e Initial load
duke
parents:
diff changeset
106 /** The target's 32-bit relative virtual address. */
a61af66fc99e Initial load
duke
parents:
diff changeset
107 public static final short IMAGE_REL_MIPS_REFWORDNB = (short) 0x0022;
a61af66fc99e Initial load
duke
parents:
diff changeset
108 /** This relocation is only valid when it immediately follows a
a61af66fc99e Initial load
duke
parents:
diff changeset
109 REFHI or SECRELHI relocation. Its SymbolTableIndex contains a
a61af66fc99e Initial load
duke
parents:
diff changeset
110 displacement and not an index into the symbol table. */
a61af66fc99e Initial load
duke
parents:
diff changeset
111 public static final short IMAGE_REL_MIPS_PAIR = (short) 0x0025;
a61af66fc99e Initial load
duke
parents:
diff changeset
112
a61af66fc99e Initial load
duke
parents:
diff changeset
113 //
a61af66fc99e Initial load
duke
parents:
diff changeset
114 // Alpha processors
a61af66fc99e Initial load
duke
parents:
diff changeset
115 //
a61af66fc99e Initial load
duke
parents:
diff changeset
116
a61af66fc99e Initial load
duke
parents:
diff changeset
117 /** This relocation is ignored. */
a61af66fc99e Initial load
duke
parents:
diff changeset
118 public static final short IMAGE_REL_ALPHA_ABSOLUTE = (short) 0x0000;
a61af66fc99e Initial load
duke
parents:
diff changeset
119 /** The target's 32-bit virtual address. This fixup is illegal in a
a61af66fc99e Initial load
duke
parents:
diff changeset
120 PE32+ image unless the image has been sandboxed by clearing the
a61af66fc99e Initial load
duke
parents:
diff changeset
121 IMAGE_FILE_LARGE_ADDRESS_AWARE bit in the File Header. */
a61af66fc99e Initial load
duke
parents:
diff changeset
122 public static final short IMAGE_REL_ALPHA_REFLONG = (short) 0x0001;
a61af66fc99e Initial load
duke
parents:
diff changeset
123 /** The target's 64-bit virtual address. */
a61af66fc99e Initial load
duke
parents:
diff changeset
124 public static final short IMAGE_REL_ALPHA_REFQUAD = (short) 0x0002;
a61af66fc99e Initial load
duke
parents:
diff changeset
125 /** 32-bit signed displacement of the target relative to the Global
a61af66fc99e Initial load
duke
parents:
diff changeset
126 Pointer (GP) register. */
a61af66fc99e Initial load
duke
parents:
diff changeset
127 public static final short IMAGE_REL_ALPHA_GPREL32 = (short) 0x0003;
a61af66fc99e Initial load
duke
parents:
diff changeset
128 /** 16-bit signed displacement of the target relative to the Global
a61af66fc99e Initial load
duke
parents:
diff changeset
129 Pointer (GP) register. */
a61af66fc99e Initial load
duke
parents:
diff changeset
130 public static final short IMAGE_REL_ALPHA_LITERAL = (short) 0x0004;
a61af66fc99e Initial load
duke
parents:
diff changeset
131 /** Reserved for future use. */
a61af66fc99e Initial load
duke
parents:
diff changeset
132 public static final short IMAGE_REL_ALPHA_LITUSE = (short) 0x0005;
a61af66fc99e Initial load
duke
parents:
diff changeset
133 /** Reserved for future use. */
a61af66fc99e Initial load
duke
parents:
diff changeset
134 public static final short IMAGE_REL_ALPHA_GPDISP = (short) 0x0006;
a61af66fc99e Initial load
duke
parents:
diff changeset
135 /** The 21-bit relative displacement to the target. This supports
a61af66fc99e Initial load
duke
parents:
diff changeset
136 the Alpha relative branch instructions. */
a61af66fc99e Initial load
duke
parents:
diff changeset
137 public static final short IMAGE_REL_ALPHA_BRADDR = (short) 0x0007;
a61af66fc99e Initial load
duke
parents:
diff changeset
138 /** 14-bit hints to the processor for the target of an Alpha jump
a61af66fc99e Initial load
duke
parents:
diff changeset
139 instruction. */
a61af66fc99e Initial load
duke
parents:
diff changeset
140 public static final short IMAGE_REL_ALPHA_HINT = (short) 0x0008;
a61af66fc99e Initial load
duke
parents:
diff changeset
141 /** The target's 32-bit virtual address split into high and low
a61af66fc99e Initial load
duke
parents:
diff changeset
142 16-bit parts. Either an ABSOLUTE or MATCH relocation must
a61af66fc99e Initial load
duke
parents:
diff changeset
143 immediately follow this relocation. The high 16 bits of the
a61af66fc99e Initial load
duke
parents:
diff changeset
144 target address are stored in the location identified by the
a61af66fc99e Initial load
duke
parents:
diff changeset
145 INLINE_REFLONG relocation. The low 16 bits are stored four bytes
a61af66fc99e Initial load
duke
parents:
diff changeset
146 later if the following relocation is of type ABSOLUTE or at a
a61af66fc99e Initial load
duke
parents:
diff changeset
147 signed displacement given in the SymbolTableIndex if the
a61af66fc99e Initial load
duke
parents:
diff changeset
148 following relocation is of type MATCH. */
a61af66fc99e Initial load
duke
parents:
diff changeset
149 public static final short IMAGE_REL_ALPHA_INLINE_REFLONG = (short) 0x0009;
a61af66fc99e Initial load
duke
parents:
diff changeset
150 /** The high 16 bits of the target's 32-bit virtual address. Used
a61af66fc99e Initial load
duke
parents:
diff changeset
151 for the first instruction in a two-instruction sequence that
a61af66fc99e Initial load
duke
parents:
diff changeset
152 loads a full address. This relocation must be immediately
a61af66fc99e Initial load
duke
parents:
diff changeset
153 followed by a PAIR relocations whose SymbolTableIndex contains a
a61af66fc99e Initial load
duke
parents:
diff changeset
154 signed 16-bit displacement which is added to the upper 16 bits
a61af66fc99e Initial load
duke
parents:
diff changeset
155 taken from the location being relocated. */
a61af66fc99e Initial load
duke
parents:
diff changeset
156 public static final short IMAGE_REL_ALPHA_REFHI = (short) 0x000A;
a61af66fc99e Initial load
duke
parents:
diff changeset
157 /** The low 16 bits of the target's virtual address. */
a61af66fc99e Initial load
duke
parents:
diff changeset
158 public static final short IMAGE_REL_ALPHA_REFLO = (short) 0x000B;
a61af66fc99e Initial load
duke
parents:
diff changeset
159 /** This relocation is only valid when it immediately follows a
a61af66fc99e Initial load
duke
parents:
diff changeset
160 REFHI , REFQ3, REFQ2, or SECRELHI relocation. Its
a61af66fc99e Initial load
duke
parents:
diff changeset
161 SymbolTableIndex contains a displacement and not an index into
a61af66fc99e Initial load
duke
parents:
diff changeset
162 the symbol table. */
a61af66fc99e Initial load
duke
parents:
diff changeset
163 public static final short IMAGE_REL_ALPHA_PAIR = (short) 0x000C;
a61af66fc99e Initial load
duke
parents:
diff changeset
164 /** This relocation is only valid when it immediately follows
a61af66fc99e Initial load
duke
parents:
diff changeset
165 INLINE_REFLONG relocation. Its SymbolTableIndex contains the
a61af66fc99e Initial load
duke
parents:
diff changeset
166 displacement in bytes of the location for the matching low
a61af66fc99e Initial load
duke
parents:
diff changeset
167 address and not an index into the symbol table. */
a61af66fc99e Initial load
duke
parents:
diff changeset
168 public static final short IMAGE_REL_ALPHA_MATCH = (short) 0x000D;
a61af66fc99e Initial load
duke
parents:
diff changeset
169 /** The 16-bit section index of the section containing the target.
a61af66fc99e Initial load
duke
parents:
diff changeset
170 This is used to support debugging information. */
a61af66fc99e Initial load
duke
parents:
diff changeset
171 public static final short IMAGE_REL_ALPHA_SECTION = (short) 0x000E;
a61af66fc99e Initial load
duke
parents:
diff changeset
172 /** The 32-bit offset of the target from the beginning of its
a61af66fc99e Initial load
duke
parents:
diff changeset
173 section. This is used to support debugging information as well
a61af66fc99e Initial load
duke
parents:
diff changeset
174 as static thread local storage. */
a61af66fc99e Initial load
duke
parents:
diff changeset
175 public static final short IMAGE_REL_ALPHA_SECREL = (short) 0x000F;
a61af66fc99e Initial load
duke
parents:
diff changeset
176 /** The target's 32-bit relative virtual address. */
a61af66fc99e Initial load
duke
parents:
diff changeset
177 public static final short IMAGE_REL_ALPHA_REFLONGNB = (short) 0x0010;
a61af66fc99e Initial load
duke
parents:
diff changeset
178 /** The low 16 bits of the 32-bit offset of the target from the
a61af66fc99e Initial load
duke
parents:
diff changeset
179 beginning of its section. */
a61af66fc99e Initial load
duke
parents:
diff changeset
180 public static final short IMAGE_REL_ALPHA_SECRELLO = (short) 0x0011;
a61af66fc99e Initial load
duke
parents:
diff changeset
181 /** The high 16 bits of the 32-bit offset of the target from the
a61af66fc99e Initial load
duke
parents:
diff changeset
182 beginning of its section. A PAIR relocation must immediately
a61af66fc99e Initial load
duke
parents:
diff changeset
183 follow this on. The SymbolTableIndex of the PAIR relocation
a61af66fc99e Initial load
duke
parents:
diff changeset
184 contains a signed 16-bit displacement which is added to the
a61af66fc99e Initial load
duke
parents:
diff changeset
185 upper 16 bits taken from the location being relocated. */
a61af66fc99e Initial load
duke
parents:
diff changeset
186 public static final short IMAGE_REL_ALPHA_SECRELHI = (short) 0x0012;
a61af66fc99e Initial load
duke
parents:
diff changeset
187 /** The low 16 bits of the high 32 bits of the target's 64-bit
a61af66fc99e Initial load
duke
parents:
diff changeset
188 virtual address. This relocation must be immediately followed by
a61af66fc99e Initial load
duke
parents:
diff changeset
189 a PAIR relocations whose SymbolTableIndex contains a signed
a61af66fc99e Initial load
duke
parents:
diff changeset
190 32-bit displacement which is added to the 16 bits taken from the
a61af66fc99e Initial load
duke
parents:
diff changeset
191 location being relocated. The 16 bits in the relocated location
a61af66fc99e Initial load
duke
parents:
diff changeset
192 are shifted left by 32 before this addition. */
a61af66fc99e Initial load
duke
parents:
diff changeset
193 public static final short IMAGE_REL_ALPHA_REFQ3 = (short) 0x0013;
a61af66fc99e Initial load
duke
parents:
diff changeset
194 /** The high 16 bits of the low 32 bits of the target's 64-bit
a61af66fc99e Initial load
duke
parents:
diff changeset
195 virtual address. This relocation must be immediately followed by
a61af66fc99e Initial load
duke
parents:
diff changeset
196 a PAIR relocations whose SymbolTableIndex contains a signed
a61af66fc99e Initial load
duke
parents:
diff changeset
197 16-bit displacement which is added to the upper 16 bits taken
a61af66fc99e Initial load
duke
parents:
diff changeset
198 from the location being relocated. */
a61af66fc99e Initial load
duke
parents:
diff changeset
199 public static final short IMAGE_REL_ALPHA_REFQ2 = (short) 0x0014;
a61af66fc99e Initial load
duke
parents:
diff changeset
200 /** The low 16 bits of the target's 64-bit virtual address. */
a61af66fc99e Initial load
duke
parents:
diff changeset
201 public static final short IMAGE_REL_ALPHA_REFQ1 = (short) 0x0015;
a61af66fc99e Initial load
duke
parents:
diff changeset
202 /** The low 16 bits of the 32-bit signed displacement of the target
a61af66fc99e Initial load
duke
parents:
diff changeset
203 relative to the Global Pointer (GP) register. */
a61af66fc99e Initial load
duke
parents:
diff changeset
204 public static final short IMAGE_REL_ALPHA_GPRELLO = (short) 0x0016;
a61af66fc99e Initial load
duke
parents:
diff changeset
205 /** The high 16 bits of the 32-bit signed displacement of the target
a61af66fc99e Initial load
duke
parents:
diff changeset
206 relative to the Global Pointer (GP) register. */
a61af66fc99e Initial load
duke
parents:
diff changeset
207 public static final short IMAGE_REL_ALPHA_GPRELHI = (short) 0x0017;
a61af66fc99e Initial load
duke
parents:
diff changeset
208
a61af66fc99e Initial load
duke
parents:
diff changeset
209 //
a61af66fc99e Initial load
duke
parents:
diff changeset
210 // PowerPC processors
a61af66fc99e Initial load
duke
parents:
diff changeset
211 //
a61af66fc99e Initial load
duke
parents:
diff changeset
212
a61af66fc99e Initial load
duke
parents:
diff changeset
213 /** This relocation is ignored. */
a61af66fc99e Initial load
duke
parents:
diff changeset
214 public static final short IMAGE_REL_PPC_ABSOLUTE = (short) 0x0000;
a61af66fc99e Initial load
duke
parents:
diff changeset
215 /** The target's 64-bit virtual address. */
a61af66fc99e Initial load
duke
parents:
diff changeset
216 public static final short IMAGE_REL_PPC_ADDR64 = (short) 0x0001;
a61af66fc99e Initial load
duke
parents:
diff changeset
217 /** The target's 32-bit virtual address. */
a61af66fc99e Initial load
duke
parents:
diff changeset
218 public static final short IMAGE_REL_PPC_ADDR32 = (short) 0x0002;
a61af66fc99e Initial load
duke
parents:
diff changeset
219 /** The low 24 bits of the target's virtual address. This is only
a61af66fc99e Initial load
duke
parents:
diff changeset
220 valid when the target symbol is absolute and can be sign
a61af66fc99e Initial load
duke
parents:
diff changeset
221 extended to its original value. */
a61af66fc99e Initial load
duke
parents:
diff changeset
222 public static final short IMAGE_REL_PPC_ADDR24 = (short) 0x0003;
a61af66fc99e Initial load
duke
parents:
diff changeset
223 /** The low 16 bits of the target's virtual address. */
a61af66fc99e Initial load
duke
parents:
diff changeset
224 public static final short IMAGE_REL_PPC_ADDR16 = (short) 0x0004;
a61af66fc99e Initial load
duke
parents:
diff changeset
225 /** The low 14 bits of the target's virtual address. This is only
a61af66fc99e Initial load
duke
parents:
diff changeset
226 valid when the target symbol is absolute and can be sign
a61af66fc99e Initial load
duke
parents:
diff changeset
227 extended to its original value. */
a61af66fc99e Initial load
duke
parents:
diff changeset
228 public static final short IMAGE_REL_PPC_ADDR14 = (short) 0x0005;
a61af66fc99e Initial load
duke
parents:
diff changeset
229 /** A 24-bit PC-relative offset to the symbol's location. */
a61af66fc99e Initial load
duke
parents:
diff changeset
230 public static final short IMAGE_REL_PPC_REL24 = (short) 0x0006;
a61af66fc99e Initial load
duke
parents:
diff changeset
231 /** A 14-bit PC-relative offset to the symbol's location. */
a61af66fc99e Initial load
duke
parents:
diff changeset
232 public static final short IMAGE_REL_PPC_REL14 = (short) 0x0007;
a61af66fc99e Initial load
duke
parents:
diff changeset
233 /** The target's 32-bit relative virtual address. */
a61af66fc99e Initial load
duke
parents:
diff changeset
234 public static final short IMAGE_REL_PPC_ADDR32NB = (short) 0x000A;
a61af66fc99e Initial load
duke
parents:
diff changeset
235 /** The 32-bit offset of the target from the beginning of its
a61af66fc99e Initial load
duke
parents:
diff changeset
236 section. This is used to support debugging information as well
a61af66fc99e Initial load
duke
parents:
diff changeset
237 as static thread local storage. */
a61af66fc99e Initial load
duke
parents:
diff changeset
238 public static final short IMAGE_REL_PPC_SECREL = (short) 0x000B;
a61af66fc99e Initial load
duke
parents:
diff changeset
239 /** The 16-bit section index of the section containing the target.
a61af66fc99e Initial load
duke
parents:
diff changeset
240 This is used to support debugging information. */
a61af66fc99e Initial load
duke
parents:
diff changeset
241 public static final short IMAGE_REL_PPC_SECTION = (short) 0x000C;
a61af66fc99e Initial load
duke
parents:
diff changeset
242 /** The 16-bit offset of the target from the beginning of its
a61af66fc99e Initial load
duke
parents:
diff changeset
243 section. This is used to support debugging information as well
a61af66fc99e Initial load
duke
parents:
diff changeset
244 as static thread local storage. */
a61af66fc99e Initial load
duke
parents:
diff changeset
245 public static final short IMAGE_REL_PPC_SECREL16 = (short) 0x000F;
a61af66fc99e Initial load
duke
parents:
diff changeset
246 /** The high 16 bits of the target's 32-bit virtual address. Used
a61af66fc99e Initial load
duke
parents:
diff changeset
247 for the first instruction in a two-instruction sequence that
a61af66fc99e Initial load
duke
parents:
diff changeset
248 loads a full address. This relocation must be immediately
a61af66fc99e Initial load
duke
parents:
diff changeset
249 followed by a PAIR relocations whose SymbolTableIndex contains a
a61af66fc99e Initial load
duke
parents:
diff changeset
250 signed 16-bit displacement which is added to the upper 16 bits
a61af66fc99e Initial load
duke
parents:
diff changeset
251 taken from the location being relocated. */
a61af66fc99e Initial load
duke
parents:
diff changeset
252 public static final short IMAGE_REL_PPC_REFHI = (short) 0x0010;
a61af66fc99e Initial load
duke
parents:
diff changeset
253 /** The low 16 bits of the target's virtual address. */
a61af66fc99e Initial load
duke
parents:
diff changeset
254 public static final short IMAGE_REL_PPC_REFLO = (short) 0x0011;
a61af66fc99e Initial load
duke
parents:
diff changeset
255 /** This relocation is only valid when it immediately follows a
a61af66fc99e Initial load
duke
parents:
diff changeset
256 REFHI or SECRELHI relocation. Its SymbolTableIndex contains a
a61af66fc99e Initial load
duke
parents:
diff changeset
257 displacement and not an index into the symbol table. */
a61af66fc99e Initial load
duke
parents:
diff changeset
258 public static final short IMAGE_REL_PPC_PAIR = (short) 0x0012;
a61af66fc99e Initial load
duke
parents:
diff changeset
259 /** The low 16 bits of the 32-bit offset of the target from the
a61af66fc99e Initial load
duke
parents:
diff changeset
260 beginning of its section. */
a61af66fc99e Initial load
duke
parents:
diff changeset
261 public static final short IMAGE_REL_PPC_SECRELLO = (short) 0x0013;
a61af66fc99e Initial load
duke
parents:
diff changeset
262 /** The high 16 bits of the 32-bit offset of the target from the
a61af66fc99e Initial load
duke
parents:
diff changeset
263 beginning of its section. A PAIR relocation must immediately
a61af66fc99e Initial load
duke
parents:
diff changeset
264 follow this on. The SymbolTableIndex of the PAIR relocation
a61af66fc99e Initial load
duke
parents:
diff changeset
265 contains a signed 16-bit displacement which is added to the
a61af66fc99e Initial load
duke
parents:
diff changeset
266 upper 16 bits taken from the location being relocated. */
a61af66fc99e Initial load
duke
parents:
diff changeset
267 public static final short IMAGE_REL_PPC_SECRELHI = (short) 0x0014;
a61af66fc99e Initial load
duke
parents:
diff changeset
268 /** 16-bit signed displacement of the target relative to the Global
a61af66fc99e Initial load
duke
parents:
diff changeset
269 Pointer (GP) register. */
a61af66fc99e Initial load
duke
parents:
diff changeset
270 public static final short IMAGE_REL_PPC_GPREL = (short) 0x0015;
a61af66fc99e Initial load
duke
parents:
diff changeset
271
a61af66fc99e Initial load
duke
parents:
diff changeset
272 //
a61af66fc99e Initial load
duke
parents:
diff changeset
273 // SH3 and SH4 processors
a61af66fc99e Initial load
duke
parents:
diff changeset
274 //
a61af66fc99e Initial load
duke
parents:
diff changeset
275
a61af66fc99e Initial load
duke
parents:
diff changeset
276 /** This relocation is ignored. */
a61af66fc99e Initial load
duke
parents:
diff changeset
277 public static final short IMAGE_REL_SH3_ABSOLUTE = (short) 0x0000;
a61af66fc99e Initial load
duke
parents:
diff changeset
278 /** Reference to the 16-bit location that contains the virtual
a61af66fc99e Initial load
duke
parents:
diff changeset
279 address of the target symbol. */
a61af66fc99e Initial load
duke
parents:
diff changeset
280 public static final short IMAGE_REL_SH3_DIRECT16 = (short) 0x0001;
a61af66fc99e Initial load
duke
parents:
diff changeset
281 /** The target's 32-bit virtual address. */
a61af66fc99e Initial load
duke
parents:
diff changeset
282 public static final short IMAGE_REL_SH3_DIRECT32 = (short) 0x0002;
a61af66fc99e Initial load
duke
parents:
diff changeset
283 /** Reference to the 8-bit location that contains the virtual
a61af66fc99e Initial load
duke
parents:
diff changeset
284 address of the target symbol. */
a61af66fc99e Initial load
duke
parents:
diff changeset
285 public static final short IMAGE_REL_SH3_DIRECT8 = (short) 0x0003;
a61af66fc99e Initial load
duke
parents:
diff changeset
286 /** Reference to the 8-bit instruction that contains the effective
a61af66fc99e Initial load
duke
parents:
diff changeset
287 16-bit virtual address of the target symbol. */
a61af66fc99e Initial load
duke
parents:
diff changeset
288 public static final short IMAGE_REL_SH3_DIRECT8_WORD = (short) 0x0004;
a61af66fc99e Initial load
duke
parents:
diff changeset
289 /** Reference to the 8-bit instruction that contains the effective
a61af66fc99e Initial load
duke
parents:
diff changeset
290 32-bit virtual address of the target symbol. */
a61af66fc99e Initial load
duke
parents:
diff changeset
291 public static final short IMAGE_REL_SH3_DIRECT8_LONG = (short) 0x0005;
a61af66fc99e Initial load
duke
parents:
diff changeset
292 /** Reference to the 8-bit location whose low 4 bits contain the
a61af66fc99e Initial load
duke
parents:
diff changeset
293 virtual address of the target symbol. */
a61af66fc99e Initial load
duke
parents:
diff changeset
294 public static final short IMAGE_REL_SH3_DIRECT4 = (short) 0x0006;
a61af66fc99e Initial load
duke
parents:
diff changeset
295 /** Reference to the 8-bit instruction whose low 4 bits contain the
a61af66fc99e Initial load
duke
parents:
diff changeset
296 effective 16-bit virtual address of the target symbol. */
a61af66fc99e Initial load
duke
parents:
diff changeset
297 public static final short IMAGE_REL_SH3_DIRECT4_WORD = (short) 0x0007;
a61af66fc99e Initial load
duke
parents:
diff changeset
298 /** Reference to the 8-bit instruction whose low 4 bits contain the
a61af66fc99e Initial load
duke
parents:
diff changeset
299 effective 32-bit virtual address of the target symbol. */
a61af66fc99e Initial load
duke
parents:
diff changeset
300 public static final short IMAGE_REL_SH3_DIRECT4_LONG = (short) 0x0008;
a61af66fc99e Initial load
duke
parents:
diff changeset
301 /** Reference to the 8-bit instruction which contains the effective
a61af66fc99e Initial load
duke
parents:
diff changeset
302 16-bit relative offset of the target symbol. */
a61af66fc99e Initial load
duke
parents:
diff changeset
303 public static final short IMAGE_REL_SH3_PCREL8_WORD = (short) 0x0009;
a61af66fc99e Initial load
duke
parents:
diff changeset
304 /** Reference to the 8-bit instruction which contains the effective
a61af66fc99e Initial load
duke
parents:
diff changeset
305 32-bit relative offset of the target symbol. */
a61af66fc99e Initial load
duke
parents:
diff changeset
306 public static final short IMAGE_REL_SH3_PCREL8_LONG = (short) 0x000A;
a61af66fc99e Initial load
duke
parents:
diff changeset
307 /** Reference to the 16-bit instruction whose low 12 bits contain
a61af66fc99e Initial load
duke
parents:
diff changeset
308 the effective 16-bit relative offset of the target symbol. */
a61af66fc99e Initial load
duke
parents:
diff changeset
309 public static final short IMAGE_REL_SH3_PCREL12_WORD = (short) 0x000B;
a61af66fc99e Initial load
duke
parents:
diff changeset
310 /** Reference to a 32-bit location that is the virtual address of
a61af66fc99e Initial load
duke
parents:
diff changeset
311 the symbol's section. */
a61af66fc99e Initial load
duke
parents:
diff changeset
312 public static final short IMAGE_REL_SH3_STARTOF_SECTION = (short) 0x000C;
a61af66fc99e Initial load
duke
parents:
diff changeset
313 /** Reference to the 32-bit location that is the size of the
a61af66fc99e Initial load
duke
parents:
diff changeset
314 symbol's section. */
a61af66fc99e Initial load
duke
parents:
diff changeset
315 public static final short IMAGE_REL_SH3_SIZEOF_SECTION = (short) 0x000D;
a61af66fc99e Initial load
duke
parents:
diff changeset
316 /** The 16-bit section index of the section containing the target.
a61af66fc99e Initial load
duke
parents:
diff changeset
317 This is used to support debugging information. */
a61af66fc99e Initial load
duke
parents:
diff changeset
318 public static final short IMAGE_REL_SH3_SECTION = (short) 0x000E;
a61af66fc99e Initial load
duke
parents:
diff changeset
319 /** The 32-bit offset of the target from the beginning of its
a61af66fc99e Initial load
duke
parents:
diff changeset
320 section. This is used to support debugging information as well
a61af66fc99e Initial load
duke
parents:
diff changeset
321 as static thread local storage. */
a61af66fc99e Initial load
duke
parents:
diff changeset
322 public static final short IMAGE_REL_SH3_SECREL = (short) 0x000F;
a61af66fc99e Initial load
duke
parents:
diff changeset
323 /** The target's 32-bit relative virtual address. */
a61af66fc99e Initial load
duke
parents:
diff changeset
324 public static final short IMAGE_REL_SH3_DIRECT32_NB = (short) 0x0010;
a61af66fc99e Initial load
duke
parents:
diff changeset
325
a61af66fc99e Initial load
duke
parents:
diff changeset
326 //
a61af66fc99e Initial load
duke
parents:
diff changeset
327 // ARM processors
a61af66fc99e Initial load
duke
parents:
diff changeset
328 //
a61af66fc99e Initial load
duke
parents:
diff changeset
329
a61af66fc99e Initial load
duke
parents:
diff changeset
330 /** This relocation is ignored. */
a61af66fc99e Initial load
duke
parents:
diff changeset
331 public static final short IMAGE_REL_ARM_ABSOLUTE = (short) 0x0000;
a61af66fc99e Initial load
duke
parents:
diff changeset
332 /** The target's 32-bit virtual address. */
a61af66fc99e Initial load
duke
parents:
diff changeset
333 public static final short IMAGE_REL_ARM_ADDR32 = (short) 0x0001;
a61af66fc99e Initial load
duke
parents:
diff changeset
334 /** The target's 32-bit relative virtual address. */
a61af66fc99e Initial load
duke
parents:
diff changeset
335 public static final short IMAGE_REL_ARM_ADDR32NB = (short) 0x0002;
a61af66fc99e Initial load
duke
parents:
diff changeset
336 /** The 24-bit relative displacement to the target. */
a61af66fc99e Initial load
duke
parents:
diff changeset
337 public static final short IMAGE_REL_ARM_BRANCH24 = (short) 0x0003;
a61af66fc99e Initial load
duke
parents:
diff changeset
338 /** Reference to a subroutine call, consisting of two 16-bit
a61af66fc99e Initial load
duke
parents:
diff changeset
339 instructions with 11-bit offsets. */
a61af66fc99e Initial load
duke
parents:
diff changeset
340 public static final short IMAGE_REL_ARM_BRANCH11 = (short) 0x0004;
a61af66fc99e Initial load
duke
parents:
diff changeset
341 /** The 16-bit section index of the section containing the target.
a61af66fc99e Initial load
duke
parents:
diff changeset
342 This is used to support debugging information. */
a61af66fc99e Initial load
duke
parents:
diff changeset
343 public static final short IMAGE_REL_ARM_SECTION = (short) 0x000E;
a61af66fc99e Initial load
duke
parents:
diff changeset
344 /** The 32-bit offset of the target from the beginning of its
a61af66fc99e Initial load
duke
parents:
diff changeset
345 section. This is used to support debugging information as well
a61af66fc99e Initial load
duke
parents:
diff changeset
346 as static thread local storage. */
a61af66fc99e Initial load
duke
parents:
diff changeset
347 public static final short IMAGE_REL_ARM_SECREL = (short) 0x000F;
a61af66fc99e Initial load
duke
parents:
diff changeset
348 }