Mercurial > hg > truffle
annotate agent/src/share/classes/sun/jvm/hotspot/debugger/win32/coff/DebugVC50TypeEnums.java @ 1552:c18cbe5936b8
6941466: Oracle rebranding changes for Hotspot repositories
Summary: Change all the Sun copyrights to Oracle copyright
Reviewed-by: ohair
author | trims |
---|---|
date | Thu, 27 May 2010 19:08:38 -0700 |
parents | a61af66fc99e |
children |
rev | line source |
---|---|
0 | 1 /* |
1552
c18cbe5936b8
6941466: Oracle rebranding changes for Hotspot repositories
trims
parents:
0
diff
changeset
|
2 * Copyright (c) 2001, Oracle and/or its affiliates. All rights reserved. |
0 | 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
4 * | |
5 * This code is free software; you can redistribute it and/or modify it | |
6 * under the terms of the GNU General Public License version 2 only, as | |
7 * published by the Free Software Foundation. | |
8 * | |
9 * This code is distributed in the hope that it will be useful, but WITHOUT | |
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | |
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License | |
12 * version 2 for more details (a copy is included in the LICENSE file that | |
13 * accompanied this code). | |
14 * | |
15 * You should have received a copy of the GNU General Public License version | |
16 * 2 along with this work; if not, write to the Free Software Foundation, | |
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. | |
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 | 22 * |
23 */ | |
24 | |
25 package sun.jvm.hotspot.debugger.win32.coff; | |
26 | |
27 /** Various enumerated values used in type leaves */ | |
28 | |
29 public interface DebugVC50TypeEnums { | |
30 /** LF_MODIFIER attributes */ | |
31 public static final int MODIFIER_CONST_MASK = 0x01; | |
32 public static final int MODIFIER_VOLATILE_MASK = 0x02; | |
33 public static final int MODIFIER_UNALIGNED_MASK = 0x04; | |
34 | |
35 /** LF_POINTER bitfields */ | |
36 // FIXME: verify these are correct | |
37 // ptrtype field | |
38 public static final int POINTER_PTRTYPE_MASK = 0x0000001F; | |
39 public static final int POINTER_PTRTYPE_SHIFT = 0; | |
40 public static final int POINTER_PTRTYPE_NEAR = 0; | |
41 public static final int POINTER_PTRTYPE_FAR = 1; | |
42 public static final int POINTER_PTRTYPE_HUGE = 2; | |
43 /** Obsolete */ | |
44 public static final int POINTER_PTRTYPE_BASED_ON_SEGMENT = 3; | |
45 public static final int POINTER_PTRTYPE_BASED_ON_VALUE = 4; | |
46 /** Obsolete */ | |
47 public static final int POINTER_PTRTYPE_BASED_ON_SEGMENT_OF_VALUE = 5; | |
48 /** Obsolete */ | |
49 public static final int POINTER_PTRTYPE_BASED_ON_ADDRESS_OF_SYMBOL = 6; | |
50 /** Obsolete */ | |
51 public static final int POINTER_PTRTYPE_BASED_ON_SEGMENT_OF_SYMBOL_ADDRESS = 7; | |
52 public static final int POINTER_PTRTYPE_BASED_ON_TYPE = 8; | |
53 /** Obsolete */ | |
54 public static final int POINTER_PTRTYPE_BASED_ON_SELF = 9; | |
55 public static final int POINTER_PTRTYPE_NEAR_32_BIT = 10; | |
56 public static final int POINTER_PTRTYPE_FAR_32_BIT = 11; | |
57 public static final int POINTER_PTRTYPE_64_BIT = 12; | |
58 | |
59 // ptrmode field | |
60 // FIXME: verify these are correct | |
61 public static final int POINTER_PTRMODE_MASK = 0x000000E0; | |
62 public static final int POINTER_PTRMODE_SHIFT = 5; | |
63 public static final int POINTER_PTRMODE_POINTER = 0; | |
64 public static final int POINTER_PTRMODE_REFERENCE = 1; | |
65 public static final int POINTER_PTRMODE_PTR_TO_DATA_MEMBER = 2; | |
66 public static final int POINTER_PTRMODE_PTR_TO_METHOD = 3; | |
67 | |
68 // FIXME: verify this is correct | |
69 public static final int POINTER_ISFLAT32_MASK = 0x00000100; | |
70 | |
71 // FIXME: verify this is correct | |
72 public static final int POINTER_VOLATILE_MASK = 0x00000200; | |
73 | |
74 // FIXME: verify this is correct | |
75 public static final int POINTER_CONST_MASK = 0x00000400; | |
76 | |
77 // FIXME: verify this is correct | |
78 public static final int POINTER_UNALIGNED_MASK = 0x00000800; | |
79 | |
80 // FIXME: verify this is correct | |
81 public static final int POINTER_RESTRICT_MASK = 0x00001000; | |
82 | |
83 /** <p> 16:32 data for classes with or without virtual functions and | |
84 no virtual bases. Pointer layout is: </p> | |
85 | |
86 <p> | |
87 <table width = "15%"> | |
88 <tr> <td> 4 | |
89 <tr> <td> mdisp | |
90 </table> | |
91 </p> | |
92 | |
93 <p> | |
94 <i>mdisp</i>: displacement to data | |
95 </p> | |
96 | |
97 <p> | |
98 NULL value is 0x80000000. | |
99 </p> | |
100 */ | |
101 public static final short PTR_FORMAT_DATA_NVF_NVB = (short) 3; | |
102 | |
103 /** <p> 16:32 data for class with virtual bases. Pointer layout is:</p> | |
104 | |
105 <p> | |
106 <table width = "45%"> | |
107 <tr> <td> 4 <td> 4 <td> 4 | |
108 <tr> <td> mdisp <td> pdisp> <td> vdisp | |
109 </table> | |
110 </p> | |
111 | |
112 <p> | |
113 <i>mdisp</i>: displacement to data | |
114 </p> | |
115 | |
116 <p> | |
117 <i>pdisp</i>: <b>this</b> pointer displacement to virtual base table pointer | |
118 </p> | |
119 | |
120 <p> | |
121 <i>vdisp</i>: displacement within virtual base table | |
122 </p> | |
123 | |
124 <p> | |
125 NULL value is (*,*,0xffffffff). | |
126 </p> | |
127 */ | |
128 public static final short PTR_FORMAT_DATA_VB = (short) 4; | |
129 | |
130 /** <p> 16:32 method nonvirtual bases with single address point. | |
131 Pointer layout is: </p> | |
132 | |
133 <p> | |
134 <table width = "15%"> | |
135 <tr> <td> 4 | |
136 <tr> <td> off | |
137 </table> | |
138 </p> | |
139 | |
140 <p> | |
141 <i>off</i>: offset of function | |
142 </p> | |
143 | |
144 <p> | |
145 NULL value is 0L. | |
146 </p> | |
147 */ | |
148 public static final short PTR_FORMAT_METHOD_NVB_SAP = (short) 11; | |
149 | |
150 /** <p> 16:32 method nonvirtual bases with multiple address points. | |
151 Pointer layout is: </p> | |
152 | |
153 <p> | |
154 <table width = "30%"> | |
155 <tr> <td> 4 <td> 4 | |
156 <tr> <td> off <td> disp | |
157 </table> | |
158 </p> | |
159 | |
160 <p> | |
161 <i>off</i>: offset of function | |
162 </p> | |
163 | |
164 <p> | |
165 <i>disp</i>: displacement of address point. | |
166 </p> | |
167 | |
168 <p> | |
169 NULL value is (0L : 0L). | |
170 </p> | |
171 */ | |
172 public static final short PTR_FORMAT_METHOD_NVB_MAP = (short) 12; | |
173 | |
174 /** <p> 16:32 method with virtual bases. Pointer layout is: </p> | |
175 | |
176 <p> | |
177 <table width = "60%"> | |
178 <tr> <td> 4 <td> 4 <td> 4 <td> 4 | |
179 <tr> <td> off <td> mdisp <td> pdisp <td> vdisp | |
180 </table> | |
181 </p> | |
182 | |
183 <p> | |
184 <i>off</i>: offset of function | |
185 </p> | |
186 | |
187 <p> | |
188 <i>mdisp</i>: displacement to data | |
189 </p> | |
190 | |
191 <p> | |
192 <i>pdisp</i>: <b>this</b> pointer displacement to virtual base | |
193 table pointer | |
194 </p> | |
195 | |
196 <p> | |
197 <i>vdisp</i>: displacement within virtual base table | |
198 </p> | |
199 | |
200 NULL value is (0L, *, *, *). | |
201 */ | |
202 public static final short PTR_FORMAT_METHOD_VB = (short) 13; | |
203 | |
204 /** Class, structure, union, and enum properties */ | |
205 // FIXME: verify these are correct | |
206 /** Structure is packed */ | |
207 public static final short PROPERTY_PACKED = (short) 0x001; | |
208 /** Class has constructors and/or destructors */ | |
209 public static final short PROPERTY_CTOR = (short) 0x002; | |
210 /** Class has overloaded operators */ | |
211 public static final short PROPERTY_OVEROPS = (short) 0x004; | |
212 /** Class is a nested class */ | |
213 public static final short PROPERTY_ISNESTED = (short) 0x008; | |
214 /** Class contains nested classes */ | |
215 public static final short PROPERTY_CNESTED = (short) 0x010; | |
216 /** Class has overloaded assignment */ | |
217 public static final short PROPERTY_OPASSIGN = (short) 0x020; | |
218 /** Class has casting methods */ | |
219 public static final short PROPERTY_OPCAST = (short) 0x040; | |
220 /** Class/structure is a forward (incomplete) reference */ | |
221 public static final short PROPERTY_FWDREF = (short) 0x080; | |
222 /** This is a scoped definition */ | |
223 public static final short PROPERTY_SCOPED = (short) 0x100; | |
224 | |
225 /** Calling conventions */ | |
226 /** Arguments pushed right to left, caller pops arguments. */ | |
227 public static final byte CALLCONV_NEAR_C = (byte) 0; | |
228 public static final byte CALLCONV_FAR_C = (byte) 1; | |
229 public static final byte CALLCONV_NEAR_PASCAL = (byte) 2; | |
230 /** Arguments pushed left to right, callee pops arguments. */ | |
231 public static final byte CALLCONV_FAR_PASCAL = (byte) 3; | |
232 public static final byte CALLCONV_NEAR_FASTCALL = (byte) 4; | |
233 public static final byte CALLCONV_FAR_FASTCALL = (byte) 5; | |
234 public static final byte CALLCONV_RESERVED = (byte) 6; | |
235 public static final byte CALLCONV_NEAR_STDCALL = (byte) 7; | |
236 public static final byte CALLCONV_FAR_STDCALL = (byte) 8; | |
237 public static final byte CALLCONV_NEAR_SYSCALL = (byte) 9; | |
238 public static final byte CALLCONV_FAR_SYSCALL = (byte) 10; | |
239 public static final byte CALLCONV_THIS_CALL = (byte) 11; | |
240 public static final byte CALLCONV_MIPS_CALL = (byte) 12; | |
241 public static final byte CALLCONV_GENERIC = (byte) 13; | |
242 | |
243 /** vtable entry descriptors */ | |
244 public static final int VTENTRY_NEAR = 0; | |
245 public static final int VTENTRY_FAR = 1; | |
246 public static final int VTENTRY_THIN = 2; | |
247 /** Address point displacement to outermost class. This is at | |
248 entry[-1] from table address. */ | |
249 public static final int VTENTRY_ADDRESS_PT_DISP = 3; | |
250 /** Far pointer to metaclass descriptor. This is at entry[-2] from | |
251 table address. */ | |
252 public static final int VTENTRY_FAR_PTR_TO_METACLASS = 4; | |
253 public static final int VTENTRY_NEAR_32 = 5; | |
254 public static final int VTENTRY_FAR_32 = 6; | |
255 | |
256 /** Label addressing modes */ | |
257 public static final short LABEL_ADDR_MODE_NEAR = (short) 0; | |
258 public static final short LABEL_ADDR_MODE_FAR = (short) 4; | |
259 | |
260 // | |
261 // Primitive/reserved type enumerations | |
262 // | |
263 | |
264 // FIXME: verify these are correct | |
265 // Type field | |
266 public static final int RESERVED_TYPE_MASK = 0x070; | |
267 public static final int RESERVED_TYPE_SPECIAL = 0x000; | |
268 public static final int RESERVED_TYPE_SIGNED_INT = 0x010; | |
269 public static final int RESERVED_TYPE_UNSIGNED_INT = 0x020; | |
270 public static final int RESERVED_TYPE_BOOLEAN = 0x030; | |
271 public static final int RESERVED_TYPE_REAL = 0x040; | |
272 public static final int RESERVED_TYPE_COMPLEX = 0x050; | |
273 public static final int RESERVED_TYPE_SPECIAL2 = 0x060; | |
274 public static final int RESERVED_TYPE_REALLY_INT = 0x070; | |
275 | |
276 // Mode field | |
277 public static final int RESERVED_MODE_MASK = 0x700; | |
278 public static final int RESERVED_MODE_DIRECT = 0x000; | |
279 public static final int RESERVED_MODE_NEAR_PTR = 0x100; | |
280 public static final int RESERVED_MODE_FAR_PTR = 0x200; | |
281 public static final int RESERVED_MODE_HUGE_PTR = 0x300; | |
282 public static final int RESERVED_MODE_NEAR_32_PTR = 0x400; | |
283 public static final int RESERVED_MODE_FAR_32_PTR = 0x500; | |
284 public static final int RESERVED_MODE_NEAR_64_PTR = 0x600; | |
285 | |
286 // Size field for each of the types above. | |
287 // Has different meanings based on type. | |
288 public static final int RESERVED_SIZE_MASK = 0x7; | |
289 // Special type | |
290 public static final int RESERVED_SIZE_SPECIAL_NO_TYPE = 0x0; | |
291 public static final int RESERVED_SIZE_SPECIAL_ABSOLUTE_SYMBOL = 0x1; | |
292 public static final int RESERVED_SIZE_SPECIAL_SEGMENT = 0x2; | |
293 public static final int RESERVED_SIZE_SPECIAL_VOID = 0x3; | |
294 public static final int RESERVED_SIZE_SPECIAL_BASIC_8_BYTE = 0x4; | |
295 public static final int RESERVED_SIZE_SPECIAL_NEAR_BASIC_STRING = 0x5; | |
296 public static final int RESERVED_SIZE_SPECIAL_FAR_BASIC_STRING = 0x6; | |
297 public static final int RESERVED_SIZE_SPECIAL_UNTRANSLATED = 0x7; | |
298 // Signed, unsigned and boolean types | |
299 public static final int RESERVED_SIZE_INT_1_BYTE = 0x0; | |
300 public static final int RESERVED_SIZE_INT_2_BYTE = 0x1; | |
301 public static final int RESERVED_SIZE_INT_4_BYTE = 0x2; | |
302 public static final int RESERVED_SIZE_INT_8_BYTE = 0x3; | |
303 // Real and complex types | |
304 public static final int RESERVED_SIZE_REAL_32_BIT = 0x0; | |
305 public static final int RESERVED_SIZE_REAL_64_BIT = 0x1; | |
306 public static final int RESERVED_SIZE_REAL_80_BIT = 0x2; | |
307 public static final int RESERVED_SIZE_REAL_128_BIT = 0x3; | |
308 public static final int RESERVED_SIZE_REAL_48_BIT = 0x4; | |
309 // Special2 type | |
310 public static final int RESERVED_SIZE_SPECIAL2_BIT = 0x0; | |
311 public static final int RESERVED_SIZE_SPECIAL2_PASCAL_CHAR = 0x1; | |
312 // Really int type | |
313 public static final int RESERVED_SIZE_REALLY_INT_CHAR = 0x0; | |
314 public static final int RESERVED_SIZE_REALLY_INT_WCHAR = 0x1; | |
315 public static final int RESERVED_SIZE_REALLY_INT_2_BYTE = 0x2; // 2 byte signed integer | |
316 public static final int RESERVED_SIZE_REALLY_INT_2_BYTE_U = 0x3; // 2 byte unsigned integer | |
317 public static final int RESERVED_SIZE_REALLY_INT_4_BYTE = 0x4; // 4 byte signed integer | |
318 public static final int RESERVED_SIZE_REALLY_INT_4_BYTE_U = 0x5; // 4 byte unsigned integer | |
319 public static final int RESERVED_SIZE_REALLY_INT_8_BYTE = 0x6; // 8 byte signed integer | |
320 public static final int RESERVED_SIZE_REALLY_INT_8_BYTE_U = 0x7; // 8 byte unsigned integer | |
321 } |