JDK14/Java14源码在线阅读

/*
 * 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).**/
展开阅读全文

关注时代Java

关注时代Java