diff agent/src/share/classes/sun/jvm/hotspot/debugger/win32/coff/SectionHeader.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/SectionHeader.java	Sat Dec 01 00:00:00 2007 +0000
@@ -0,0 +1,99 @@
+/*
+ * Copyright 2000 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;
+
+/** Describes the header of a section in a COFF file. The section
+    headers are grouped together into the Section Table. (Some of the
+    descriptions are taken directly from Microsoft's documentation and
+    are copyrighted by Microsoft.) */
+
+public interface SectionHeader {
+  public String getName();
+
+  /** Total size of the section when loaded into memory. If this value
+      is greater than Size of Raw Data, the section is zero-padded.
+      This field is valid only for executable images and should be set
+      to 0 for object files. */
+  public int getSize();
+
+  /** For executable images this is the address of the first byte of
+      the section, when loaded into memory, relative to the image
+      base. For object files, this field is the address of the first
+      byte before relocation is applied; for simplicity, compilers
+      should set this to zero. Otherwise, it is an arbitrary value
+      that is subtracted from offsets during relocation. */
+  public int getVirtualAddress();
+
+  /** Size of the section (object file) or size of the initialized
+      data on disk (image files). For executable image, this must be a
+      multiple of FileAlignment from the optional header. If this is
+      less than VirtualSize the remainder of the section is zero
+      filled. Because this field is rounded while the VirtualSize
+      field is not it is possible for this to be greater than
+      VirtualSize as well. When a section contains only uninitialized
+      data, this field should be 0. */
+  public int getSizeOfRawData();
+
+  /** File pointer to section's first page within the COFF file. For
+      executable images, this must be a multiple of FileAlignment from
+      the optional header. For object files, the value should be
+      aligned on a four-byte boundary for best performance. When a
+      section contains only uninitialized data, this field should be
+      0. */
+  public int getPointerToRawData();
+
+  /** File pointer to beginning of relocation entries for the section.
+      Set to 0 for executable images or if there are no
+      relocations. */
+  public int getPointerToRelocations();
+
+  /** File pointer to beginning of line-number entries for the
+      section. Set to 0 if there are no COFF line numbers. */
+  public int getPointerToLineNumbers();
+
+  /** Number of relocation entries for the section. Set to 0 for
+      executable images. */
+  public short getNumberOfRelocations();
+
+  /** Number of line-number entries for the section. */
+  public short getNumberOfLineNumbers();
+
+  /** Flags describing section's characteristics; see {@link
+      sun.jvm.hotspot.debugger.win32.coff.SectionFlags}. */
+  public int getSectionFlags();
+
+  /** Returns true if the appropriate flag (from {@link
+      sun.jvm.hotspot.debugger.win32.coff.SectionFlags}) is set. */
+  public boolean hasSectionFlag(int flag);
+
+  /** This is only present for object files. Retrieves the COFF
+      relocation at the given index; valid indices are numbered
+      0...getNumberOfRelocations() - 1. */
+  public COFFRelocation getCOFFRelocation(int index);
+
+  /** Retrieves the COFF line number at the given index; valid indices
+      are numbered 0...getNumberOfLineNumbers() - 1. */
+  public COFFLineNumber getCOFFLineNumber(int index);
+}