/*
* 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.) */
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. */
public static final short IMAGE_SYM_UNDEFINED = (short) 0;
/** 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). */
public static final short IMAGE_SYM_DEBUG = (short) -2;
//
// Type Representation
//
/** 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. */
public static final short IMAGE_SYM_TYPE_VOID = (short) 1;
/** Character (signed byte). */
public static final short IMAGE_SYM_TYPE_CHAR = (short) 2;
/** Two-byte signed integer. */
public static final short IMAGE_SYM_TYPE_SHORT = (short) 3;
/** Natural integer type (normally four bytes in Windows NT). */
public static final short IMAGE_SYM_TYPE_INT = (short) 4;
/** Four-byte signed integer. */
public static final short IMAGE_SYM_TYPE_LONG = (short) 5;
/** Four-byte floating-point number. */
public static final short IMAGE_SYM_TYPE_FLOAT = (short) 6;
/** Eight-byte floating-point number. */
public static final short IMAGE_SYM_TYPE_DOUBLE = (short) 7;
/** Structure. */
public static final short IMAGE_SYM_TYPE_STRUCT = (short) 8;
/** Union. */
public static final short IMAGE_SYM_TYPE_UNION = (short) 9;
/** Enumerated type. */
public static final short IMAGE_SYM_TYPE_ENUM = (short) 10;
/** Member of enumeration (a specific value). */
public static final short IMAGE_SYM_TYPE_MOE = (short) 11;
/** Byte; unsigned one-byte integer. */
public static final short IMAGE_SYM_TYPE_BYTE = (short) 12;
/** Word; unsigned two-byte integer. */
public static final short IMAGE_SYM_TYPE_WORD = (short) 13;
/** Unsigned integer of natural size (normally, four bytes). */
public static final short IMAGE_SYM_TYPE_UINT = (short) 14;
/** Unsigned four-byte integer. */
public static final short IMAGE_SYM_TYPE_DWORD = (short) 15;
/** No derived type; the symbol is a simple scalar variable. */
public static final short IMAGE_SYM_DTYPE_NULL = (short) 0;
/** Pointer to base type. */
public static final short IMAGE_SYM_DTYPE_POINTER = (short) 1;
/** Function returning base type. */
public static final short IMAGE_SYM_DTYPE_FUNCTION = (short) 2;
/** 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. */
public static final byte IMAGE_SYM_CLASS_END_OF_FUNCTION = (byte) -1;
/** No storage class assigned. */
public static final byte IMAGE_SYM_CLASS_NULL = (byte) 0;
/** 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. */
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. */
public static final byte IMAGE_SYM_CLASS_STATIC = (byte) 3;
/** Register variable. The Value field specifies register number. */
public static final byte IMAGE_SYM_CLASS_REGISTER = (byte) 4;
/** 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. */
public static final byte IMAGE_SYM_CLASS_LABEL = (byte) 6;
/** 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. */
public static final byte IMAGE_SYM_CLASS_MEMBER_OF_STRUCT = (byte) 8;
/** 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. */
public static final byte IMAGE_SYM_CLASS_STRUCT_TAG = (byte) 10;
/** Union member. The Value field specifies nth member. */
public static final byte IMAGE_SYM_CLASS_MEMBER_OF_UNION = (byte) 11;
/** Union tag-name entry. */
public static final byte IMAGE_SYM_CLASS_UNION_TAG = (byte) 12;
/** Typedef entry. */
public static final byte IMAGE_SYM_CLASS_TYPE_DEFINITION = (byte) 13;
/** Static data declaration. */
public static final byte IMAGE_SYM_CLASS_UNDEFINED_STATIC = (byte) 14;
/** Enumerated type tagname entry. */
public static final byte IMAGE_SYM_CLASS_ENUM_TAG = (byte) 15;
/** Member of enumeration. Value specifies nth member. */
public static final byte IMAGE_SYM_CLASS_MEMBER_OF_ENUM = (byte) 16;
/** Register parameter. */
public static final byte IMAGE_SYM_CLASS_REGISTER_PARAM = (byte) 17;
/** 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. */
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
/**代码未完, 请加载全部代码(NowJava.com).**/