annotate agent/src/share/classes/sun/jvm/hotspot/debugger/win32/coff/COFFSymbolConstants.java @ 1913:3b2dea75431e

6984311: JSR 292 needs optional bootstrap method parameters Summary: Allow CONSTANT_InvokeDynamic nodes to have any number of extra operands. Reviewed-by: twisti
author jrose
date Sat, 30 Oct 2010 13:08:23 -0700
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 /** Constants providing information about the section number, type
a61af66fc99e Initial load
duke
parents:
diff changeset
28 representation, and storage class of symbols. (Some of the
a61af66fc99e Initial load
duke
parents:
diff changeset
29 descriptions are taken directly from Microsoft's documentation and
a61af66fc99e Initial load
duke
parents:
diff changeset
30 are copyrighted by Microsoft.) */
a61af66fc99e Initial load
duke
parents:
diff changeset
31
a61af66fc99e Initial load
duke
parents:
diff changeset
32 public interface COFFSymbolConstants {
a61af66fc99e Initial load
duke
parents:
diff changeset
33 //
a61af66fc99e Initial load
duke
parents:
diff changeset
34 // Section Number Values
a61af66fc99e Initial load
duke
parents:
diff changeset
35 //
a61af66fc99e Initial load
duke
parents:
diff changeset
36
a61af66fc99e Initial load
duke
parents:
diff changeset
37 /** Symbol record is not yet assigned a section. If the value is 0
a61af66fc99e Initial load
duke
parents:
diff changeset
38 this indicates a references to an external symbol defined
a61af66fc99e Initial load
duke
parents:
diff changeset
39 elsewhere. If the value is non-zero this is a common symbol with
a61af66fc99e Initial load
duke
parents:
diff changeset
40 a size specified by the value. */
a61af66fc99e Initial load
duke
parents:
diff changeset
41 public static final short IMAGE_SYM_UNDEFINED = (short) 0;
a61af66fc99e Initial load
duke
parents:
diff changeset
42 /** The symbol has an absolute (non-relocatable) value and is not an
a61af66fc99e Initial load
duke
parents:
diff changeset
43 address. */
a61af66fc99e Initial load
duke
parents:
diff changeset
44 public static final short IMAGE_SYM_ABSOLUTE = (short) -1;
a61af66fc99e Initial load
duke
parents:
diff changeset
45 /** The symbol provides general type or debugging information but
a61af66fc99e Initial load
duke
parents:
diff changeset
46 does not correspond to a section. Microsoft tools use this
a61af66fc99e Initial load
duke
parents:
diff changeset
47 setting along with .file records (storage class FILE). */
a61af66fc99e Initial load
duke
parents:
diff changeset
48 public static final short IMAGE_SYM_DEBUG = (short) -2;
a61af66fc99e Initial load
duke
parents:
diff changeset
49
a61af66fc99e Initial load
duke
parents:
diff changeset
50 //
a61af66fc99e Initial load
duke
parents:
diff changeset
51 // Type Representation
a61af66fc99e Initial load
duke
parents:
diff changeset
52 //
a61af66fc99e Initial load
duke
parents:
diff changeset
53
a61af66fc99e Initial load
duke
parents:
diff changeset
54 /** No type information or unknown base type. Microsoft tools use
a61af66fc99e Initial load
duke
parents:
diff changeset
55 this setting. */
a61af66fc99e Initial load
duke
parents:
diff changeset
56 public static final short IMAGE_SYM_TYPE_NULL = (short) 0;
a61af66fc99e Initial load
duke
parents:
diff changeset
57 /** No valid type; used with void pointers and functions. */
a61af66fc99e Initial load
duke
parents:
diff changeset
58 public static final short IMAGE_SYM_TYPE_VOID = (short) 1;
a61af66fc99e Initial load
duke
parents:
diff changeset
59 /** Character (signed byte). */
a61af66fc99e Initial load
duke
parents:
diff changeset
60 public static final short IMAGE_SYM_TYPE_CHAR = (short) 2;
a61af66fc99e Initial load
duke
parents:
diff changeset
61 /** Two-byte signed integer. */
a61af66fc99e Initial load
duke
parents:
diff changeset
62 public static final short IMAGE_SYM_TYPE_SHORT = (short) 3;
a61af66fc99e Initial load
duke
parents:
diff changeset
63 /** Natural integer type (normally four bytes in Windows NT). */
a61af66fc99e Initial load
duke
parents:
diff changeset
64 public static final short IMAGE_SYM_TYPE_INT = (short) 4;
a61af66fc99e Initial load
duke
parents:
diff changeset
65 /** Four-byte signed integer. */
a61af66fc99e Initial load
duke
parents:
diff changeset
66 public static final short IMAGE_SYM_TYPE_LONG = (short) 5;
a61af66fc99e Initial load
duke
parents:
diff changeset
67 /** Four-byte floating-point number. */
a61af66fc99e Initial load
duke
parents:
diff changeset
68 public static final short IMAGE_SYM_TYPE_FLOAT = (short) 6;
a61af66fc99e Initial load
duke
parents:
diff changeset
69 /** Eight-byte floating-point number. */
a61af66fc99e Initial load
duke
parents:
diff changeset
70 public static final short IMAGE_SYM_TYPE_DOUBLE = (short) 7;
a61af66fc99e Initial load
duke
parents:
diff changeset
71 /** Structure. */
a61af66fc99e Initial load
duke
parents:
diff changeset
72 public static final short IMAGE_SYM_TYPE_STRUCT = (short) 8;
a61af66fc99e Initial load
duke
parents:
diff changeset
73 /** Union. */
a61af66fc99e Initial load
duke
parents:
diff changeset
74 public static final short IMAGE_SYM_TYPE_UNION = (short) 9;
a61af66fc99e Initial load
duke
parents:
diff changeset
75 /** Enumerated type. */
a61af66fc99e Initial load
duke
parents:
diff changeset
76 public static final short IMAGE_SYM_TYPE_ENUM = (short) 10;
a61af66fc99e Initial load
duke
parents:
diff changeset
77 /** Member of enumeration (a specific value). */
a61af66fc99e Initial load
duke
parents:
diff changeset
78 public static final short IMAGE_SYM_TYPE_MOE = (short) 11;
a61af66fc99e Initial load
duke
parents:
diff changeset
79 /** Byte; unsigned one-byte integer. */
a61af66fc99e Initial load
duke
parents:
diff changeset
80 public static final short IMAGE_SYM_TYPE_BYTE = (short) 12;
a61af66fc99e Initial load
duke
parents:
diff changeset
81 /** Word; unsigned two-byte integer. */
a61af66fc99e Initial load
duke
parents:
diff changeset
82 public static final short IMAGE_SYM_TYPE_WORD = (short) 13;
a61af66fc99e Initial load
duke
parents:
diff changeset
83 /** Unsigned integer of natural size (normally, four bytes). */
a61af66fc99e Initial load
duke
parents:
diff changeset
84 public static final short IMAGE_SYM_TYPE_UINT = (short) 14;
a61af66fc99e Initial load
duke
parents:
diff changeset
85 /** Unsigned four-byte integer. */
a61af66fc99e Initial load
duke
parents:
diff changeset
86 public static final short IMAGE_SYM_TYPE_DWORD = (short) 15;
a61af66fc99e Initial load
duke
parents:
diff changeset
87
a61af66fc99e Initial load
duke
parents:
diff changeset
88 /** No derived type; the symbol is a simple scalar variable. */
a61af66fc99e Initial load
duke
parents:
diff changeset
89 public static final short IMAGE_SYM_DTYPE_NULL = (short) 0;
a61af66fc99e Initial load
duke
parents:
diff changeset
90 /** Pointer to base type. */
a61af66fc99e Initial load
duke
parents:
diff changeset
91 public static final short IMAGE_SYM_DTYPE_POINTER = (short) 1;
a61af66fc99e Initial load
duke
parents:
diff changeset
92 /** Function returning base type. */
a61af66fc99e Initial load
duke
parents:
diff changeset
93 public static final short IMAGE_SYM_DTYPE_FUNCTION = (short) 2;
a61af66fc99e Initial load
duke
parents:
diff changeset
94 /** Array of base type. */
a61af66fc99e Initial load
duke
parents:
diff changeset
95 public static final short IMAGE_SYM_DTYPE_ARRAY = (short) 3;
a61af66fc99e Initial load
duke
parents:
diff changeset
96
a61af66fc99e Initial load
duke
parents:
diff changeset
97 //
a61af66fc99e Initial load
duke
parents:
diff changeset
98 // Storage Class
a61af66fc99e Initial load
duke
parents:
diff changeset
99 //
a61af66fc99e Initial load
duke
parents:
diff changeset
100
a61af66fc99e Initial load
duke
parents:
diff changeset
101 /** (0xFF) Special symbol representing end of function, for
a61af66fc99e Initial load
duke
parents:
diff changeset
102 debugging purposes. */
a61af66fc99e Initial load
duke
parents:
diff changeset
103 public static final byte IMAGE_SYM_CLASS_END_OF_FUNCTION = (byte) -1;
a61af66fc99e Initial load
duke
parents:
diff changeset
104 /** No storage class assigned. */
a61af66fc99e Initial load
duke
parents:
diff changeset
105 public static final byte IMAGE_SYM_CLASS_NULL = (byte) 0;
a61af66fc99e Initial load
duke
parents:
diff changeset
106 /** Automatic (stack) variable. The Value field specifies stack
a61af66fc99e Initial load
duke
parents:
diff changeset
107 frame offset. */
a61af66fc99e Initial load
duke
parents:
diff changeset
108 public static final byte IMAGE_SYM_CLASS_AUTOMATIC = (byte) 1;
a61af66fc99e Initial load
duke
parents:
diff changeset
109 /** Used by Microsoft tools for external symbols. The Value field
a61af66fc99e Initial load
duke
parents:
diff changeset
110 indicates the size if the section number is IMAGE_SYM_UNDEFINED
a61af66fc99e Initial load
duke
parents:
diff changeset
111 (0). If the section number is not 0, then the Value field
a61af66fc99e Initial load
duke
parents:
diff changeset
112 specifies the offset within the section. */
a61af66fc99e Initial load
duke
parents:
diff changeset
113 public static final byte IMAGE_SYM_CLASS_EXTERNAL = 2;
a61af66fc99e Initial load
duke
parents:
diff changeset
114 /** The Value field specifies the offset of the symbol within the
a61af66fc99e Initial load
duke
parents:
diff changeset
115 section. If the Value is 0, then the symbol represents a section
a61af66fc99e Initial load
duke
parents:
diff changeset
116 name. */
a61af66fc99e Initial load
duke
parents:
diff changeset
117 public static final byte IMAGE_SYM_CLASS_STATIC = (byte) 3;
a61af66fc99e Initial load
duke
parents:
diff changeset
118 /** Register variable. The Value field specifies register number. */
a61af66fc99e Initial load
duke
parents:
diff changeset
119 public static final byte IMAGE_SYM_CLASS_REGISTER = (byte) 4;
a61af66fc99e Initial load
duke
parents:
diff changeset
120 /** Symbol is defined externally. */
a61af66fc99e Initial load
duke
parents:
diff changeset
121 public static final byte IMAGE_SYM_CLASS_EXTERNAL_DEF = (byte) 5;
a61af66fc99e Initial load
duke
parents:
diff changeset
122 /** Code label defined within the module. The Value field specifies
a61af66fc99e Initial load
duke
parents:
diff changeset
123 the offset of the symbol within the section. */
a61af66fc99e Initial load
duke
parents:
diff changeset
124 public static final byte IMAGE_SYM_CLASS_LABEL = (byte) 6;
a61af66fc99e Initial load
duke
parents:
diff changeset
125 /** Reference to a code label not defined. */
a61af66fc99e Initial load
duke
parents:
diff changeset
126 public static final byte IMAGE_SYM_CLASS_UNDEFINED_LABEL = (byte) 7;
a61af66fc99e Initial load
duke
parents:
diff changeset
127 /** Structure member. The Value field specifies nth member. */
a61af66fc99e Initial load
duke
parents:
diff changeset
128 public static final byte IMAGE_SYM_CLASS_MEMBER_OF_STRUCT = (byte) 8;
a61af66fc99e Initial load
duke
parents:
diff changeset
129 /** Formal argument (parameter) of a function. The Value field
a61af66fc99e Initial load
duke
parents:
diff changeset
130 specifies nth argument. */
a61af66fc99e Initial load
duke
parents:
diff changeset
131 public static final byte IMAGE_SYM_CLASS_ARGUMENT = (byte) 9;
a61af66fc99e Initial load
duke
parents:
diff changeset
132 /** Structure tag-name entry. */
a61af66fc99e Initial load
duke
parents:
diff changeset
133 public static final byte IMAGE_SYM_CLASS_STRUCT_TAG = (byte) 10;
a61af66fc99e Initial load
duke
parents:
diff changeset
134 /** Union member. The Value field specifies nth member. */
a61af66fc99e Initial load
duke
parents:
diff changeset
135 public static final byte IMAGE_SYM_CLASS_MEMBER_OF_UNION = (byte) 11;
a61af66fc99e Initial load
duke
parents:
diff changeset
136 /** Union tag-name entry. */
a61af66fc99e Initial load
duke
parents:
diff changeset
137 public static final byte IMAGE_SYM_CLASS_UNION_TAG = (byte) 12;
a61af66fc99e Initial load
duke
parents:
diff changeset
138 /** Typedef entry. */
a61af66fc99e Initial load
duke
parents:
diff changeset
139 public static final byte IMAGE_SYM_CLASS_TYPE_DEFINITION = (byte) 13;
a61af66fc99e Initial load
duke
parents:
diff changeset
140 /** Static data declaration. */
a61af66fc99e Initial load
duke
parents:
diff changeset
141 public static final byte IMAGE_SYM_CLASS_UNDEFINED_STATIC = (byte) 14;
a61af66fc99e Initial load
duke
parents:
diff changeset
142 /** Enumerated type tagname entry. */
a61af66fc99e Initial load
duke
parents:
diff changeset
143 public static final byte IMAGE_SYM_CLASS_ENUM_TAG = (byte) 15;
a61af66fc99e Initial load
duke
parents:
diff changeset
144 /** Member of enumeration. Value specifies nth member. */
a61af66fc99e Initial load
duke
parents:
diff changeset
145 public static final byte IMAGE_SYM_CLASS_MEMBER_OF_ENUM = (byte) 16;
a61af66fc99e Initial load
duke
parents:
diff changeset
146 /** Register parameter. */
a61af66fc99e Initial load
duke
parents:
diff changeset
147 public static final byte IMAGE_SYM_CLASS_REGISTER_PARAM = (byte) 17;
a61af66fc99e Initial load
duke
parents:
diff changeset
148 /** Bit-field reference. Value specifies nth bit in the bit field. */
a61af66fc99e Initial load
duke
parents:
diff changeset
149 public static final byte IMAGE_SYM_CLASS_BIT_FIELD = (byte) 18;
a61af66fc99e Initial load
duke
parents:
diff changeset
150 /** A .bb (beginning of block) or .eb (end of block) record. Value
a61af66fc99e Initial load
duke
parents:
diff changeset
151 is the relocatable address of the code location. */
a61af66fc99e Initial load
duke
parents:
diff changeset
152 public static final byte IMAGE_SYM_CLASS_BLOCK = (byte) 100;
a61af66fc99e Initial load
duke
parents:
diff changeset
153 /** Used by Microsoft tools for symbol records that define the
a61af66fc99e Initial load
duke
parents:
diff changeset
154 extent of a function: begin function (named .bf), end function
a61af66fc99e Initial load
duke
parents:
diff changeset
155 (.ef), and lines in function (.lf). For .lf records, Value gives
a61af66fc99e Initial load
duke
parents:
diff changeset
156 the number of source lines in the function. For .ef records,
a61af66fc99e Initial load
duke
parents:
diff changeset
157 Value gives the size of function code. */
a61af66fc99e Initial load
duke
parents:
diff changeset
158 public static final byte IMAGE_SYM_CLASS_FUNCTION = (byte) 101;
a61af66fc99e Initial load
duke
parents:
diff changeset
159 /** End of structure entry. */
a61af66fc99e Initial load
duke
parents:
diff changeset
160 public static final byte IMAGE_SYM_CLASS_END_OF_STRUCT = (byte) 102;
a61af66fc99e Initial load
duke
parents:
diff changeset
161 /** Used by Microsoft tools, as well as traditional COFF format, for
a61af66fc99e Initial load
duke
parents:
diff changeset
162 the source-file symbol record. The symbol is followed by
a61af66fc99e Initial load
duke
parents:
diff changeset
163 auxiliary records that name the file. */
a61af66fc99e Initial load
duke
parents:
diff changeset
164 public static final byte IMAGE_SYM_CLASS_FILE = (byte) 103;
a61af66fc99e Initial load
duke
parents:
diff changeset
165 /** Definition of a section (Microsoft tools use STATIC storage
a61af66fc99e Initial load
duke
parents:
diff changeset
166 class instead). */
a61af66fc99e Initial load
duke
parents:
diff changeset
167 public static final byte IMAGE_SYM_CLASS_SECTION = (byte) 104;
a61af66fc99e Initial load
duke
parents:
diff changeset
168 /** Weak external. */
a61af66fc99e Initial load
duke
parents:
diff changeset
169 public static final byte IMAGE_SYM_CLASS_WEAK_EXTERNAL = (byte) 105;
a61af66fc99e Initial load
duke
parents:
diff changeset
170 }