/*
 * Copyright (c) 2000, Oracle and/or its affiliates. All rights reserved.
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 *
 * This code is free software; you can redistribute it and/or modify it
 * under the terms of the GNU General Public License version 2 only, as
 * published by the Free Software Foundation.
 *
 * This code is distributed in the hope that it will be useful, but WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 * version 2 for more details (a copy is included in the LICENSE file that
 * accompanied this code).
 *
 * You should have received a copy of the GNU General Public License version
 * 2 along with this work; if not, write to the Free Software Foundation,
 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
 *
 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
 * or visit www.oracle.com if you need additional information or have any
 * questions.
 *
 */

package sun.jvm.hotspot.debugger.win32.coff;

Constants providing information about the section number, type representation, and storage class of symbols. (Some of the descriptions are taken directly from Microsoft's documentation and are copyrighted by Microsoft.)
/** Constants providing information about the section number, type representation, and storage class of symbols. (Some of the descriptions are taken directly from Microsoft's documentation and are copyrighted by Microsoft.) */
public interface COFFSymbolConstants { // // Section Number Values //
Symbol record is not yet assigned a section. If the value is 0 this indicates a references to an external symbol defined elsewhere. If the value is non-zero this is a common symbol with a size specified by the value.
/** Symbol record is not yet assigned a section. If the value is 0 this indicates a references to an external symbol defined elsewhere. If the value is non-zero this is a common symbol with a size specified by the value. */
public static final short IMAGE_SYM_UNDEFINED = (short) 0;
The symbol has an absolute (non-relocatable) value and is not an address.
/** The symbol has an absolute (non-relocatable) value and is not an address. */
public static final short IMAGE_SYM_ABSOLUTE = (short) -1;
The symbol provides general type or debugging information but does not correspond to a section. Microsoft tools use this setting along with .file records (storage class FILE).
/** The symbol provides general type or debugging information but does not correspond to a section. Microsoft tools use this setting along with .file records (storage class FILE). */
public static final short IMAGE_SYM_DEBUG = (short) -2; // // Type Representation //
No type information or unknown base type. Microsoft tools use this setting.
/** No type information or unknown base type. Microsoft tools use this setting. */
public static final short IMAGE_SYM_TYPE_NULL = (short) 0;
No valid type; used with void pointers and functions.
/** No valid type; used with void pointers and functions. */
public static final short IMAGE_SYM_TYPE_VOID = (short) 1;
Character (signed byte).
/** Character (signed byte). */
public static final short IMAGE_SYM_TYPE_CHAR = (short) 2;
Two-byte signed integer.
/** Two-byte signed integer. */
public static final short IMAGE_SYM_TYPE_SHORT = (short) 3;
Natural integer type (normally four bytes in Windows NT).
/** Natural integer type (normally four bytes in Windows NT). */
public static final short IMAGE_SYM_TYPE_INT = (short) 4;
Four-byte signed integer.
/** Four-byte signed integer. */
public static final short IMAGE_SYM_TYPE_LONG = (short) 5;
Four-byte floating-point number.
/** Four-byte floating-point number. */
public static final short IMAGE_SYM_TYPE_FLOAT = (short) 6;
Eight-byte floating-point number.
/** Eight-byte floating-point number. */
public static final short IMAGE_SYM_TYPE_DOUBLE = (short) 7;
Structure.
/** Structure. */
public static final short IMAGE_SYM_TYPE_STRUCT = (short) 8;
Union.
/** Union. */
public static final short IMAGE_SYM_TYPE_UNION = (short) 9;
Enumerated type.
/** Enumerated type. */
public static final short IMAGE_SYM_TYPE_ENUM = (short) 10;
Member of enumeration (a specific value).
/** Member of enumeration (a specific value). */
public static final short IMAGE_SYM_TYPE_MOE = (short) 11;
Byte; unsigned one-byte integer.
/** Byte; unsigned one-byte integer. */
public static final short IMAGE_SYM_TYPE_BYTE = (short) 12;
Word; unsigned two-byte integer.
/** Word; unsigned two-byte integer. */
public static final short IMAGE_SYM_TYPE_WORD = (short) 13;
Unsigned integer of natural size (normally, four bytes).
/** Unsigned integer of natural size (normally, four bytes). */
public static final short IMAGE_SYM_TYPE_UINT = (short) 14;
Unsigned four-byte integer.
/** Unsigned four-byte integer. */
public static final short IMAGE_SYM_TYPE_DWORD = (short) 15;
No derived type; the symbol is a simple scalar variable.
/** No derived type; the symbol is a simple scalar variable. */
public static final short IMAGE_SYM_DTYPE_NULL = (short) 0;
Pointer to base type.
/** Pointer to base type. */
public static final short IMAGE_SYM_DTYPE_POINTER = (short) 1;
Function returning base type.
/** Function returning base type. */
public static final short IMAGE_SYM_DTYPE_FUNCTION = (short) 2;
Array of base type.
/** Array of base type. */
public static final short IMAGE_SYM_DTYPE_ARRAY = (short) 3; // // Storage Class //
(0xFF) Special symbol representing end of function, for debugging purposes.
/** (0xFF) Special symbol representing end of function, for debugging purposes. */
public static final byte IMAGE_SYM_CLASS_END_OF_FUNCTION = (byte) -1;
No storage class assigned.
/** No storage class assigned. */
public static final byte IMAGE_SYM_CLASS_NULL = (byte) 0;
Automatic (stack) variable. The Value field specifies stack frame offset.
/** Automatic (stack) variable. The Value field specifies stack frame offset. */
public static final byte IMAGE_SYM_CLASS_AUTOMATIC = (byte) 1;
Used by Microsoft tools for external symbols. The Value field indicates the size if the section number is IMAGE_SYM_UNDEFINED (0). If the section number is not 0, then the Value field specifies the offset within the section.
/** Used by Microsoft tools for external symbols. The Value field indicates the size if the section number is IMAGE_SYM_UNDEFINED (0). If the section number is not 0, then the Value field specifies the offset within the section. */
public static final byte IMAGE_SYM_CLASS_EXTERNAL = 2;
The Value field specifies the offset of the symbol within the section. If the Value is 0, then the symbol represents a section name.
/** The Value field specifies the offset of the symbol within the section. If the Value is 0, then the symbol represents a section name. */
public static final byte IMAGE_SYM_CLASS_STATIC = (byte) 3;
Register variable. The Value field specifies register number.
/** Register variable. The Value field specifies register number. */
public static final byte IMAGE_SYM_CLASS_REGISTER = (byte) 4;
Symbol is defined externally.
/** Symbol is defined externally. */
public static final byte IMAGE_SYM_CLASS_EXTERNAL_DEF = (byte) 5;
Code label defined within the module. The Value field specifies the offset of the symbol within the section.
/** Code label defined within the module. The Value field specifies the offset of the symbol within the section. */
public static final byte IMAGE_SYM_CLASS_LABEL = (byte) 6;
Reference to a code label not defined.
/** Reference to a code label not defined. */
public static final byte IMAGE_SYM_CLASS_UNDEFINED_LABEL = (byte) 7;
Structure member. The Value field specifies nth member.
/** Structure member. The Value field specifies nth member. */
public static final byte IMAGE_SYM_CLASS_MEMBER_OF_STRUCT = (byte) 8;
Formal argument (parameter) of a function. The Value field specifies nth argument.
/** Formal argument (parameter) of a function. The Value field specifies nth argument. */
public static final byte IMAGE_SYM_CLASS_ARGUMENT = (byte) 9;
Structure tag-name entry.
/** Structure tag-name entry. */
public static final byte IMAGE_SYM_CLASS_STRUCT_TAG = (byte) 10;
Union member. The Value field specifies nth member.
/** Union member. The Value field specifies nth member. */
public static final byte IMAGE_SYM_CLASS_MEMBER_OF_UNION = (byte) 11;
Union tag-name entry.
/** Union tag-name entry. */
public static final byte IMAGE_SYM_CLASS_UNION_TAG = (byte) 12;
Typedef entry.
/** Typedef entry. */
public static final byte IMAGE_SYM_CLASS_TYPE_DEFINITION = (byte) 13;
Static data declaration.
/** Static data declaration. */
public static final byte IMAGE_SYM_CLASS_UNDEFINED_STATIC = (byte) 14;
Enumerated type tagname entry.
/** Enumerated type tagname entry. */
public static final byte IMAGE_SYM_CLASS_ENUM_TAG = (byte) 15;
Member of enumeration. Value specifies nth member.
/** Member of enumeration. Value specifies nth member. */
public static final byte IMAGE_SYM_CLASS_MEMBER_OF_ENUM = (byte) 16;
Register parameter.
/** Register parameter. */
public static final byte IMAGE_SYM_CLASS_REGISTER_PARAM = (byte) 17;
Bit-field reference. Value specifies nth bit in the bit field.
/** Bit-field reference. Value specifies nth bit in the bit field. */
public static final byte IMAGE_SYM_CLASS_BIT_FIELD = (byte) 18;
A .bb (beginning of block) or .eb (end of block) record. Value is the relocatable address of the code location.
/** A .bb (beginning of block) or .eb (end of block) record. Value is the relocatable address of the code location. */
public static final byte IMAGE_SYM_CLASS_BLOCK = (byte) 100;
Used by Microsoft tools for symbol records that define the extent of a function: begin function (named .bf), end function (.ef), and lines in function (.lf). For .lf records, Value gives the number of source lines in the function. For .ef records, Value gives the size of function code.
/** Used by Microsoft tools for symbol records that define the extent of a function: begin function (named .bf), end function (.ef), and lines in function (.lf). For .lf records, Value gives the number of source lines in the function. For .ef records, Value gives the size of function code. */
public static final byte IMAGE_SYM_CLASS_FUNCTION = (byte) 101;
End of structure entry.
/** End of structure entry. */
public static final byte IMAGE_SYM_CLASS_END_OF_STRUCT = (byte) 102;
Used by Microsoft tools, as well as traditional COFF format, for the source-file symbol record. The symbol is followed by auxiliary records that name the file.
/** Used by Microsoft tools, as well as traditional COFF format, for the source-file symbol record. The symbol is followed by auxiliary records that name the file. */
public static final byte IMAGE_SYM_CLASS_FILE = (byte) 103;
Definition of a section (Microsoft tools use STATIC storage class instead).
/** Definition of a section (Microsoft tools use STATIC storage class instead). */
public static final byte IMAGE_SYM_CLASS_SECTION = (byte) 104;
Weak external.
/** Weak external. */
public static final byte IMAGE_SYM_CLASS_WEAK_EXTERNAL = (byte) 105; }