diff agent/src/share/classes/sun/jvm/hotspot/debugger/win32/coff/DebugVC50SymbolEnums.java @ 0:a61af66fc99e jdk7-b24

Initial load
author duke
date Sat, 01 Dec 2007 00:00:00 +0000
parents
children c18cbe5936b8
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/agent/src/share/classes/sun/jvm/hotspot/debugger/win32/coff/DebugVC50SymbolEnums.java	Sat Dec 01 00:00:00 2007 +0000
@@ -0,0 +1,127 @@
+/*
+ * Copyright 2001 Sun Microsystems, Inc.  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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ *
+ */
+
+package sun.jvm.hotspot.debugger.win32.coff;
+
+/** Miscellaneous integer enumerations for symbol parsing */
+
+public interface DebugVC50SymbolEnums {
+
+  /** Machine types (S_COMPILE) */
+  public static final byte MACHTYPE_INTEL_8080 = (byte) 0x00;
+  public static final byte MACHTYPE_INTEL_8086 = (byte) 0x01;
+  public static final byte MACHTYPE_INTEL_80286 = (byte) 0x02;
+  public static final byte MACHTYPE_INTEL_80386 = (byte) 0x03;
+  public static final byte MACHTYPE_INTEL_80486 = (byte) 0x04;
+  public static final byte MACHTYPE_INTEL_PENTIUM = (byte) 0x05;
+  public static final byte MACHTYPE_INTEL_PENTIUM_PRO = (byte) 0x06;
+  public static final byte MACHTYPE_MIPS_R4000 = (byte) 0x10;
+  public static final byte MACHTYPE_MIPS_RESERVED = (byte) 0x11;
+  public static final byte MACHTYPE_MIPS_RESERVED2 = (byte) 0x12;
+  public static final byte MACHTYPE_MC68000 = (byte) 0x20;
+  public static final byte MACHTYPE_MC68010 = (byte) 0x21;
+  public static final byte MACHTYPE_MC68020 = (byte) 0x22;
+  public static final byte MACHTYPE_MC68030 = (byte) 0x23;
+  public static final byte MACHTYPE_MC68040 = (byte) 0x24;
+  public static final byte MACHTYPE_ALPHA = (byte) 0x30;
+  public static final byte MACHTYPE_PPC601 = (byte) 0x40;
+  public static final byte MACHTYPE_PPC603 = (byte) 0x41;
+  public static final byte MACHTYPE_PPC604 = (byte) 0x42;
+  public static final byte MACHTYPE_PPC620 = (byte) 0x43;
+
+  /** Compile flags (S_COMPILE). All have masks and shifts because the
+      data is bit-packed into three bytes in the file. (FIXME: test
+      these masks and shifts to make sure they are correct.) */
+  public static final int  COMPFLAG_LANGUAGE_MASK    = 0x00FF0000;
+  public static final int  COMPFLAG_LANGUAGE_SHIFT   = 16;
+  public static final int  COMPFLAG_LANGUAGE_C       = 0;
+  public static final int  COMPFLAG_LANGUAGE_CPP     = 1; // C++
+  public static final int  COMPFLAG_LANGUAGE_FORTRAN = 2;
+  public static final int  COMPFLAG_LANGUAGE_MASM    = 3;
+  public static final int  COMPFLAG_LANGUAGE_PASCAL  = 4;
+  public static final int  COMPFLAG_LANGUAGE_BASIC   = 5;
+  public static final int  COMPFLAG_LANGUAGE_COBOL   = 6;
+
+  public static final int  COMPFLAG_PCODE_PRESENT_MASK  = 0x00008000;
+
+  // Float precision enumeration
+  public static final int  COMPFLAG_FLOAT_PRECISION_MASK   = 0x00006000;
+  public static final int  COMPFLAG_FLOAT_PRECISION_SHIFT  = 13;
+  public static final int  COMPFLAG_FLOAT_PRECISION_ANSI_C = 1;
+
+  // Floating package enumeration
+  public static final int  COMPFLAG_FLOAT_PACKAGE_MASK  = 0x00001800;
+  public static final int  COMPFLAG_FLOAT_PACKAGE_SHIFT = 11;
+  public static final int  COMPFLAG_FLOAT_PACKAGE_HARDWARE = 0;
+  public static final int  COMPFLAG_FLOAT_PACKAGE_EMULATOR = 1;
+  public static final int  COMPFLAG_FLOAT_PACKAGE_ALTMATH  = 2;
+
+  // Ambient code/data memory model flags
+  public static final int  COMPFLAG_AMBIENT_DATA_MASK  = 0x00000700;
+  public static final int  COMPFLAG_AMBIENT_DATA_SHIFT = 12;
+  public static final int  COMPFLAG_AMBIENT_CODE_MASK  = 0x000000E0;
+  public static final int  COMPFLAG_AMBIENT_CODE_SHIFT = 8;
+  public static final int  COMPFLAG_AMBIENT_MODEL_NEAR = 0;
+  public static final int  COMPFLAG_AMBIENT_MODEL_FAR  = 1;
+  public static final int  COMPFLAG_AMBIENT_MODEL_HUGE = 2;
+
+  // Indicates whether program is compiled for 32-bit addresses
+  public static final int  COMPFLAG_MODE32_MASK        = 0x00000010;
+
+  /** Function return flags (S_RETURN) */
+  // FIXME: verify these are correct
+  public static final short FUNCRET_VARARGS_LEFT_TO_RIGHT_MASK  = (short) 0x0001;
+  public static final short FUNCRET_RETURNEE_STACK_CLEANUP_MASK = (short) 0x0002;
+
+  // Return styles
+  public static final byte FUNCRET_VOID                   = (byte) 0x00;
+  public static final byte FUNCRET_IN_REGISTERS           = (byte) 0x01;
+  public static final byte FUNCRET_INDIRECT_CALLER_NEAR   = (byte) 0x02;
+  public static final byte FUNCRET_INDIRECT_CALLER_FAR    = (byte) 0x03;
+  public static final byte FUNCRET_INDIRECT_RETURNEE_NEAR = (byte) 0x04;
+  public static final byte FUNCRET_INDIRECT_RETURNEE_FAR  = (byte) 0x05;
+
+  /** Procedure flags */
+  // FIXME: verify these are correct
+  public static final byte PROCFLAGS_FRAME_POINTER_OMITTED = (byte) 0x01;
+  public static final byte PROCFLAGS_INTERRUPT_ROUTINE     = (byte) 0x02;
+  public static final byte PROCFLAGS_FAR_RETURN            = (byte) 0x04;
+  public static final byte PROCFLAGS_NEVER_RETURN          = (byte) 0x08;
+
+  /** Thunk types (S_THUNK32) */
+  public static final byte THUNK_NO_TYPE  = (byte) 0;
+  public static final byte THUNK_ADJUSTOR = (byte) 1;
+  public static final byte THUNK_VCALL    = (byte) 2;
+  public static final byte THUNK_PCODE    = (byte) 3;
+
+  /** Execution models (S_CEXMODEL32) */
+  public static final short EXMODEL_NOT_CODE              = (short) 0x00;
+  public static final short EXMODEL_JUMP_TABLE            = (short) 0x01;
+  public static final short EXMODEL_PADDING               = (short) 0x02;
+  public static final short EXMODEL_NATIVE                = (short) 0x20;
+  public static final short EXMODEL_MICROFOCUS_COBOL      = (short) 0x21;
+  public static final short EXMODEL_PADDING_FOR_ALIGNMENT = (short) 0x22;
+  public static final short EXMODEL_CODE                  = (short) 0x23;
+  public static final short EXMODEL_PCODE                 = (short) 0x40;
+}